【发布时间】:2012-01-17 21:07:24
【问题描述】:
我有一个具有以下架构的集合:
{
"_id" : ObjectId("4ee3ddc346b3b8880a000000"),
...
"msgs" : [{
"mid" : ObjectId("4ee3ddc346b3b8880a000000"),
"deleted" : []
},
{
"mid" : ObjectId("4ee3ddc346b3b8880a000100"),
"deleted" : []
}]
}
我想做这个查询: 对于特定的_id,在每个“已删除”数组中插入一个元素
所以在执行此查询后,我会收到如下信息:
{
"_id" : ObjectId("4ee3ddc346b3b8880a000000"),
...
"msgs" : [{
"mid" : ObjectId("4ee3ddc346b3b8880a000000"),
"deleted" : [2]
},
{
"mid" : ObjectId("4ee3ddc346b3b8880a000100"),
"deleted" : [2]
}]
}
我想做什么:
db.dialogs.update(
{ "_id" : ObjectId("4ee3ddc346b3b8880a000000")},
{$addToSet : {'msgs.$.deleted' : 2}}
)
问题在于它只更新数组中的第一个元素元素,而不是所有元素
有什么想法吗?
【问题讨论】:
标签: mongodb