哪个是使用mongoose和条件更快的mongodb查询?

时间:2018-01-18 07:13:28

标签: node.js mongoose

假设我有超过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..
});

2 个答案:

答案 0 :(得分:1)

在mongoose中使用lean: true然后找

// 2. Query users with condition age = 30
User.find({age: 30},{},{lean:true})
.then(function(myUsers) {
    // do something..
});
  

这是more explanation

的博客链接

答案 1 :(得分:0)

在查询时总是要对数据进行过滤或排序。

1的问题是当数据扩大并变得庞大时。在执行过滤器时,所有RAM都被消耗掉并开始导致瓶颈缩颈