小编Ger*_*ano的帖子

有没有办法用单个查询来插入列表?

我知道之前已经问过这个问题,但这是另一种情况.我想要一个这样的集合:

{
    "_id" : ObjectId("4c28f62cbf8544c60506f11d"),
    "pk": 1,
    "forums": [{
        "pk": 1,
        "thread_count": 10, 
        "post_count": 20,
    }, {
        "pk": 2,
        "thread_count": 5, 
        "post_count": 24,
    }]
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是插入一个"论坛"项目,递增计数器或添加一个项目(如果它不存在).

例如,做这样的事情(我希望它有意义):

db.mycollection.update({
    "pk": 3,
    "forums.pk": 2
}, {
    "$inc": {"forums.$.thread_count": 1},
    "$inc": {"forums.$.post_count": 1},
}, true)
Run Code Online (Sandbox Code Playgroud)

并有:

{
    "_id" : ObjectId("4c28f62cbf8544c60506f11d"),
    "pk": 1,
    "forums": [{
        "pk": 1,
        "thread_count": 10, 
        "post_count": 20,
    }, {
        "pk": 2,
        "thread_count": 5, 
        "post_count": 24,
    }]
},
{
    "_id" : ObjectId("4c28f62cbf8544c60506f11e"),
    "pk": 3,
    "forums": [{
        "pk": 2,
        "thread_count": 1, 
        "post_count": …
Run Code Online (Sandbox Code Playgroud)

upsert mongodb

6
推荐指数
1
解决办法
1541
查看次数

标签 统计

mongodb ×1

upsert ×1