繁体   English   中英

MongoDB 投影与 For 循环

[英]MongoDB Projection vs For Loops

我想通过一些逻辑从我的 mongo 数据库中访问一些数据并返回某些键的值。 例如,让用户数据是这样的。

[
  {
   "_id": 1,
   "name":"abc",
   "age":"25",
   "sport":"football"
  },
  {
   "_id": 2,
   "name":"def",
   "age":"18",
   "sport":"boxing"
  },
  {
   "_id": 3,
   "name":"ghi",
   "age":"22",
   "sport":"cricket"
  },
 ]

现在我只想返回姓名和年龄值。

第一种方法,

const users = await this.User.find({});
let userList = [];

        for (let i = 0; i < users.length; i++)
        {
            let user = users[i];

            let t =
            {
                name : user.name,
                age: user.age
            }

            userList.push(t);
        }   

return userList;

第二种方法,

    const users = await this.User.find({}, {"name":1, "age":1, _id:0, 
    "sport":0});

    return users;

那么,如果我们忽略代码中的行数,哪个实现更好,为什么?

第二种方法更好,因为您可以节省时间和 memory。 当您使用 for 循环时,需要更多时间。 当您将用户保存在userList中时,您也会复制您的数据。 所以它需要更多的时间和 memory。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM