Обновление счетчиков во вложенном наборе карт в MongoDB - PullRequest
0 голосов
/ 29 января 2019

Я работаю над моделью документа, которая содержит вложенный набор карт.Я хочу вставить новый документ и увеличить счетчик внутри каждой карты.Например, рассмотрим этот документ:

{
    "_id" : ObjectId("5c27e5c6d216f13ff82904e6"),
    "name": "documentA",
    "data": [
        {
            "keyX": "valueX"
            "count": 1
        },
        {
            "keyY": "valueY"
            "count": 1
        }
     ]
}

Допустим, я хочу добавить этот документ по имени:

{
    "name": "documentA",
    "data": [
        {
            "keyY": "valueY"
            "count": 1
        },
        {
            "keyZ": "valueZ"
            "count": 3
        }
     ]
}

Я бы хотел, чтобы результатом стал документ с набором карт, с объединенными полями подсчета:

{
    "_id" : ObjectId("5c27e5c6d216f13ff82904e6"),
    "name": "documentA",
    "data": [
        {
            "keyX": "valueX"
            "count": 1
        },
        {
            "keyY": "valueY"
            "count": 2
        },
        {
            "keyZ": "valueZ"
            "count": 3
        }
     ]
}

Это случай для совокупного API?Обратите внимание, я делаю это на Java, поэтому я мог бы выполнять эту часть приложения в транзакции, но есть ли более быстрая операция на стороне базы данных?

...