我有一个要求,我必须将最近六小时插入的文件复制到另一个集合,我必须定期这样做。此外,如果目标集合中存在文档,则必须从源集合更新文档。
有关源集合的一些统计信息 -
我已经提到这些链接来提出这段代码 - move docs from one coll to another& Bulk.find.upsert
var copyDocsToJobModel = db.JobsModel.initializeUnorderedBulkOp()
var x = 5000
var counter = 0
var lastCopyTime = new Date(Date.now() - 6 * 60 * 60)
var prev_count = db.JobsModel.count()
db.Messages.find({"ModifiedDate":{$gte: lastCopyTime}}).forEach(
function(doc){
delete doc._id
copyDocsToJobModel.find({'JobId': doc.JobId}).upsert().updateOne(doc);
counter ++
if( counter % x == 0){
copyDocsToJobModel.execute()
copyDocsToJobModel = db.JobsModel.initializeUnorderedBulkOp()
}
}
)
var resp = copyDocsToJobModel.execute()
var curr_count = db.JobsModel.count()
[prev_count, curr_count]
代码按预期工作但我有以下查询 -
提前致谢。