我通过"扩展"现有文档20次来创建一些假文档.但; forEach循环似乎永远不会结束.为什么?
db['COLLECTION'].find({}).forEach(function(doc){
for( var x = 0; x < 20; x++ ) {
delete doc['_id'];
doc['Author'] = randArrayElement(names); /* chooses random name */
doc['Description'] = buzzword(); /* makes something up*/
db['COLLECTION'].insert(doc);
}
}
)
Run Code Online (Sandbox Code Playgroud)
我想你需要在这里使用快照:
db['COLLECTION'].find().snapshot().forEach(function(doc){
...
})
Run Code Online (Sandbox Code Playgroud)
我认为这是因为写操作可能导致文档的移动和快照修复它:
$ snapshot运算符可防止游标多次返回文档,因为插入的写入操作会导致文档移动.
如果这没有帮助,那么我还有另一个想法,即光标会拾取新创建的文档.为了克服这个问题,我将创建一个包含所有文档的数组,然后单独迭代它们并为每个文档执行20次插入.
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |