【发布时间】:2013-08-13 22:32:56
【问题描述】:
这就是我的数据库中的内容。
{
"_id": { "$oid" : "1111" },
"gallery": {
"images": [
{
"image": "test1.jpg",
"_id": { "$oid" : "1111a" }
},
{
"image": "test2.jpg",
"_id": { "$oid" : "1111b" }
},
{
"image": "test3.jpg",
"_id": { "$oid" : "1111c" }
}
]
}
}
,{
"_id": { "$oid" : "2222" },
"gallery": {
"images": [
{
"image": "test1.jpg",
"_id": { "$oid" : "2222a" }
}
]
}
}
我想更新第一个元素 (_id:"1111") 的第二个元素 (image:"test2.jpg")。 结果应该是
...
{
"image": "test2new.jpg",
"_id": { "$oid" : "1111b" }
},
...
我有第二张图片“1111b”的_id。 我该怎么做?
更新
我试过这个查询,但它不起作用。
{
'_id':{'$oid' : '1111' }
,'gallery.image': $elemMatch:{ '_id':{'$oid':'1111b' } }
}
,{
$set:{ 'gallery.images.$.image':'test2new.jpg' }
}
解决方案
_id 不带引号且不加 { "$oid" :
{
{ _id : '1111' }
,{ 'gallery.image': $elemMatch:{ _id:'1111b' } }
}
,{
$set:{ 'gallery.images.$.image':'test2new.jpg' }
}
【问题讨论】:
-
你尝试了什么? (C)
-
谢谢,我看到了那个帖子,但它有点不同,因为我有这种 id "_id": { "$oid" : "1111b" }
标签: mongodb