L oop через массив и заменить старое новым - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь l oop через массив и заменить старую версию новой.

Мой код, который я использую:

db.cases.aggregate(
    { $match: { 'companyID': 218 }},
    { $unwind: '$cases' }, 
    { $group: { "_id": "$cases.casenumber", cases: {$push:'$cases'}, "count": { $sum:1 }}},
    { $match: { "count": { "$gt": 1 }}}
    { $project: { "cases": { $slice: [ "$cases", -1, { $subtract: [ { $size: "$cases" }, 1 ]}] }}},
    { $project: { "cases": { $arrayElemAt: ['$cases', 0] }}},
    { $group: { _id: 1, cases: {$push:'$cases' }}},
    { $out: 'cases' }
)

Проблема в том, что $ out просто перезаписывает документ кейсов, однако я хочу сохранить документ кейсов и обновить только указанный массив c дел для ID компании внутри документа.

Вот как выглядит документ:

enter image description here

У кого-нибудь есть идеи, как это можно сделать?

Спасибо

...