我在 Mongo 集合中有一个文档,看起来像这样:
{
_id: [uuid]
prop:
some: "text",
subprop: ['foo', 'bar']
}
如果可能的话,我想避免将整个记录拉出、修改并推回。在不知道存储索引的情况下,我可以运行哪些更新来从中'bar'
删除?doc.prop.subprop
谢谢 :)
我在 Mongo 集合中有一个文档,看起来像这样:
{
_id: [uuid]
prop:
some: "text",
subprop: ['foo', 'bar']
}
如果可能的话,我想避免将整个记录拉出、修改并推回。在不知道存储索引的情况下,我可以运行哪些更新来从中'bar'
删除?doc.prop.subprop
谢谢 :)
您应该能够使用 $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] } 的所有文档上运行。