相关疑难解决方法(0)

mongo可以upsert数组数据吗?

我有一个像这样的mongo文档.

{
    "_id" : ObjectId("50b429ba0e27b508d854483e"),
    "array" : [
        {
            "id" : "1",
            "letter" : "a"
        },
        {
            "id" : "2",
            "letter" : "b"
        }
    ],
    "tester" : "tom"
}
Run Code Online (Sandbox Code Playgroud)

我希望能够array使用单个mongo命令插入和更新,而不是在find()当时运行中使用条件insert(),update()具体取决于对象的存在.

id是我想成为选择器的项目.所以如果我用这个更新数组:

{
    "id" : "2",
    "letter" : "c"
}
Run Code Online (Sandbox Code Playgroud)

我必须使用一个$set声明

db.soup.update({
    "tester":"tom",
    'array.id': '2'
}, {
    $set: {
        'array.$.letter': 'c'
    }
})
Run Code Online (Sandbox Code Playgroud)

如果我想在数组中插入一个新对象

{
    "id" : "3",
    "letter" : "d"
}
Run Code Online (Sandbox Code Playgroud)

我必须使用一个$push声明

db.soup.update({
    "tester":"tom"
}, { …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

37
推荐指数
3
解决办法
2万
查看次数

标签 统计

mongodb ×1

node.js ×1