我编写了一个更新多个dbs和集合的mongo shell脚本。但是我注意到脚本会在更新所有内容之前退出。有没有办法等到一个数据库上的更新操作完成后再转到下一个要更新的数据库?
这是一个小例子(不包含所有数据):
var mongoURL = 'localhost:27017';
var db1URL = mongoURL + '/db1';
var db2URL = mongoURL + '/db2';
var db1 = connect(db1URL);
var db2 = connect(db2URL);
db1.getCollection(col1).update(
{ "name": recName, "sources.name": oldCh}, {$set: {"sources.$.name": newCh}}
);
db2.getCollection(col2).update(
{ rec: recName, sources: oldCh}, {$set: { "sources.$": newCh}}
);
我需要db2
上的更新才能等到db1
上的更新完成。换句话说,我不希望脚本退出,直到所有内容都更新。因此,执行脚本的操作员确切地知道花了多长时间(因为我们每个数据库每个集合有很多文档)
PS。使用mongo 2.4
答案 0 :(得分:0)
原来db.getLastError()
或db.getLastErrorObj()
正是我正在寻找的。 p>
在脚本内部,显式调用db.getLastError()以等待写操作的结果。