我有一份像这样的mongo文件.
{
"_id" : ObjectId("50b429ba0e27b508d854483e"),
"array" : [
{
"id" : "1",
"letter" : "a"
},
{
"id" : "2",
"letter" : "b"
}
],
"tester" : "tom"
}
我希望能够使用单个mongo命令插入和更新array
,并且不在find()
中使用条件,然后根据对象的存在运行insert()
和update()
.
id
是我想要的 Select 项.因此,如果我用以下内容更新数组:
{
"id" : "2",
"letter" : "c"
}
我得用$set
个字
db.soup.update({
"tester":"tom",
'array.id': '2'
}, {
$set: {
'array.$.letter': 'c'
}
})
如果我想在数组中插入一个新对象
{
"id" : "3",
"letter" : "d"
}
我得用$push
个字
db.soup.update({
"tester":"tom"
}, {
$push: {
'array': {
"id": "3",
"letter": "d"
}
}
})
我需要一种数组项的插入.
我必须以编程方式完成这项工作,还是可以通过一个mongo调用完成这项工作?