是否可以在MongoDB中使用单个命令插入或更新多个文档?

时间:2011-08-22 03:54:49

标签: mongodb

我来自MySQL,在那里你可以拥有一个巨大的INSERT,并在一个查询中添加(或者在DUPLPLATE KEY UPDATE中)一堆行,而不是为每一行设置一个单独查询的循环。在MongoDB中似乎没有像这样的选项。这是对的吗?

我意识到这与MongoDB基于对象的方法并不完全兼容。发送成千上万的命令似乎效率低下,特别是如果数据库位于单独的服务器上。

3 个答案:

答案 0 :(得分:1)

是的,低级接口支持以下内容:

db.nonsense.update({a: 'a'}, {$set: {b: 'X'}}, false, true);

就像这个SQL:

update nonsense
set b = 'X'
where a = 'a'

您希望最后一个参数(multi)为true,否则您不会更新所有匹配的条目。

这可能有用:

  

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

答案 1 :(得分:1)

批量插入将在未来版本中提供,目前计划用于v2.1,请参阅:

大多数language drivers也已经实施了自己的批量/批量插入。

答案 2 :(得分:0)

是。在java中,这就是它的样子。