[英]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.