count()和find()结果不同

时间:2018-08-29 11:17:38

标签: mongodb mongodb-query

MongoDB 3.6.2

我已经使用forEach执行了具有从源集合和批量插入到目标集合的计数过程的脚本,并且我声明了要在forEach函数中计数的变量,以比较两个步骤中的计数值,但不匹配。

计数过程

sourceCnt = db.sourceCollection.count({ xid : {$gte : ObjectId.fromDate(startDT), $lt : ObjectId.fromDate(endDT)}})

批量插入

var bulkIns = db.targetCollection.initializeUnorderedBulkOp();
db.sourceCollection.find({ xid : {$gte : ObjectId.fromDate(startDT), $lt : ObjectId.fromDate(endDT)}}).forEach(function(doc){ 
        bulkIns.insert(doc); 
        targetCnt++ 
})

sourceCnt和targetCnt的值不同。

有人知道或遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:0)

我的解决方案是比较批量插入结果和批量删除结果中的数据,而不是计数结果。