在MongoDB中单独查询;
快速提问。
我有一些更新命令可以在我的MongoDB数据库上运行。 这些发生在用户完成许多任务并希望将所有更新推送到服务器之后。 我将在几个集合中更新几个文档。
如果我想确保这些更新是原子性的,并且没有其他用户同时发出的查询或命令可能会造成干扰,我可以将我的查询分开;
?
简单示例:
db.cities.find({"asciiname":"Zamin Sukhteh"});db.cities.find({"asciiname":"Konab-e Vasat"})
上述结果会导致两个独立的原子查询吗?
尽管无法使用分隔符来分隔shell中的命令以引入原子性,但可以使用db.eval。
如果您只使用shell(您在注释中说过),则可以使用db.eval函数在执行一段JavaScript代码时执行数据库范围的锁定。 这不是你通常想要做的事情(因为它会默认阻止所有的写入和读取操作),但是在上面描述的情况下(再次注释),它听起来像是符合你的需求。
db.eval( function() {
var one = db.cities.find({"asciiname":"Zamin Sukhteh"});
var two = db.cities.find({"asciiname":"Konab-e Vasat"});
// other work ...
});
更新(发表评论):
如果你想在MongoDB中进行有效的原子(类似于)更新,有几个选择:
上一篇: Separate queries in MongoDB with ;
下一篇: unable to load main object from bundle.js using cordova