Я работаю над моделью документа, которая содержит вложенный набор карт.Я хочу вставить новый документ и увеличить счетчик внутри каждой карты.Например, рассмотрим этот документ:
{
"_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, поэтому я мог бы выполнять эту часть приложения в транзакции, но есть ли более быстрая операция на стороне базы данных?