User.find({job:"developer",sick:1},callback);
上面的查询给了我数组的数组对象,但我只需要它的长度。我试过User.count({job:"developer",sick:1},callback);
它没有用。
我知道我可以使用原生 .length 原生函数,但我想使用 count()来优化我的查询。
答案 0 :(得分:3)
我认为会是这样的。
User.find({job: 'developer'}, {sick: 1}, function(err, docs){
var length = docs.length;
console.log(length);
})
更好的方法(取决于您是否要使用返回的文档)是使用.length。但是,如果你只是为速度做这个,那么数量可能更好。
用.length:
来做{{1}}
差异
.count()只返回长度而不进行完整查询并加载文档,而.length将获取返回的数组并获取长度,这可能需要更长时间,具体取决于数据库中存储的内容
答案 1 :(得分:0)
如果您不想使用。{
,请使用count功能User.count({job:"developer",sick:1}, function(err, count) {
console.log(count);
});
有些用户(@ Jasch1)建议使用此功能:
Song.find({job: 'developer'}, {sick: 1}, function(err, docs){
var length = docs.length;
console.log(length);
})
然而有一件事需要记住.count会返回数字,其中.find实际返回实际数据,如果您有大量收集,这可能会非常低效。