MongoDB插入文档"或"增量字段(如果存在于数组中)

Sad*_*vaş 8 mongodb

我尝试做的很简单,我在文档中一个数组 ;

"tags": [ 
    {
        "t" : "architecture",
        "n" : 12
    }, 
    {
        "t" : "contemporary",
        "n" : 2
    }, 
    {
        "t" : "creative",
        "n" : 1
    }, 
    {
        "t" : "concrete",
        "n" : 3
    }
]
Run Code Online (Sandbox Code Playgroud)

我想将一个项目数组推送到数组

["architecture","blabladontexist"]
Run Code Online (Sandbox Code Playgroud)

如果item存在,我想增加对象的n值(在这种情况下是它architecture),

如果不这样做,请将其添加为新项目(值为n=0){ "t": "blabladontexist", "n":0}

我已经试过$addToSet,$set,$inc,$upsert: true有这么多的组合,不能做到这一点.

我们怎样才能在MongoDB中做到这一点?

jst*_*ell 0

我不相信这可以通过单个命令来完成。

MongoDB 不允许 $set (或 $setOnInsert)和 $inc 在单个命令中影响同一字段。

您必须执行一个更新命令来尝试 $inc 该字段,如果这不会更改任何文档 (n = 0),请执行更新以 $set 该字段为其默认值。