[英]MongoDB `cursor.count` returning 0 despite non-empty collection
我正在尝试检索数据库中与某个哈希值匹配的文档数,但是无论集合中有多少文档, count()
函数似乎都返回0。 这是我的代码:
var cursor = collection.find({hash_val: current_hash_val}, {response: 1,_id: 0});
cursor.count(function(count) {
if(count == 1) {
console.log("Found a unique document. Count is %d",count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
else if(count > 1){
console.log("Found multiple documents. Count is %d", count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
else{
console.log("Did not find any documents. Count is %d", count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
});
集合中有几个与current_hash_val
匹配的文档,但是我的代码总是跳转到else
语句。 但是, forEach
函数向我显示了一些打印到控制台的记录。 有人可以解释我使用的count函数是否错误,或者MongoDB方面的行为是否不正确?
现在看来,这是因为回调函数有两个参数,错误和计数值,所以它的分配错误值可能是null
到count
,所以尝试在回调函数的计数值之前得到的错误:
var cursor = collection.find({hash_val: current_hash_val}, {response: 1,_id: 0});
cursor.count(function(err, count) {
if(count == 1) {
console.log("Found a unique document. Count is %d",count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
else if(count > 1){
console.log("Found multiple documents. Count is %d", count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
else{
console.log("Did not find any documents. Count is %d", count);
cursor.forEach(function(doc) {
console.log(doc);
});
}
});
您可以查看计数示例以获取更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.