0

我在 Mongo 集合中有一个文档,看起来像这样:

{
  _id: [uuid]
  prop: 
    some: "text",
    subprop: ['foo', 'bar']
}

如果可能的话,我想避免将整个记录拉出、修改并推回。在不知道存储索引的情况下,我可以运行哪些更新来从中'bar'删除?doc.prop.subprop

谢谢 :)

4

1 回答 1

2

您应该能够使用 $pull 运算符来执行此操作,该运算符可以从字段中提取特定值。您可以使用点表示法来获取 subprop 字段:

db.foo.update( { _id : [uuid] }, { $pull : { "prop.subprop" : "bar" } } );

如果要对集合中的多个文档运行更新,则需要使用以下语法在查询中设置 multi : true :

db.foo.update( { _id : [uuid] }, { $pull : { "prop.subprop" : "bar" } }, { multi : true } ); 

这意味着更新查询将在您的集合中匹配 { _id : [uuid] } 的所有文档上运行。

于 2012-12-18T16:09:20.090 回答