假设我有超过300k的用户并希望获得年龄为30岁的用户。这是获得特定用户的更快方式? 1还是2?
// 1. Query all users and filter the users in local
User.find()
.then(function(users) {
var myUsers = _.filter(users, { 'age': 30 });
// do something..
});
// 2. Query users with condition age = 30
User.find({age: 30})
.then(function(myUsers) {
// do something..
});
答案 0 :(得分:1)
在mongoose中使用lean: true
然后找
// 2. Query users with condition age = 30
User.find({age: 30},{},{lean:true})
.then(function(myUsers) {
// do something..
});
的博客链接
答案 1 :(得分:0)
在查询时总是要对数据进行过滤或排序。
1的问题是当数据扩大并变得庞大时。在执行过滤器时,所有RAM都被消耗掉并开始导致瓶颈缩颈