* Это мой пример коллекции, я создаю представление для всего активного состояния, и мне нужно заменить любой _subjects.V, который содержит слова «подтвердить / нет», на нулевое значение.
Я пытался использовать $addfields / project с фильтром, он либо удаляет элемент, либо добавляет нулевое значение для всех элементов.
Возможно, у меня будет еще несколько похожих изменений, которые будут добавлены на основе комбинированных значений K и V.*
{
_id: 1,
_status: "active",
_subjects: [{
"K": "Maths",
"V": "M010"
},
{
"K": "Maths",
"V": "M010"
},
{
"K": "Maths",
"V": "M011"
},
{
"K": "Maths",
"V": "M020"
},
{
"K": "Maths",
"V": "M050"
},
{
"K": "Science",
"V": "SC10"
},
{
"K": "Science",
"V": "SC99"
},
{
"K": "Science2",
"V": "Yet to confirm"
},
{
"K": "Science2",
"V": "Not available"
},
{
"K": "English",
"V": "EN010"
},
],
_schedule: {
"start": ISODate("2019-01-01T00:00:00.000+0000"),
"end": ISODate("2020-01-01T00:00:00.000+0000"),
_sessions: [{
"days": ["2019-01-02",
"2019-01-05"]
},
{
"optional": ["EN010"]
}]
}
},
{
_id: 2,
_status: "active",
_subjects: [{
"K": "Maths",
"V": "M010"
},
{
"K": "Maths",
"V": "M030"
},
{
"K": "Maths",
"V": "M021"
},
{
"K": "Maths",
"V": "Yet to confirm"
},
{
"K": "Maths",
"V": "M050"
},
{
"K": "Science",
"V": "SC10"
},
{
"K": "Science",
"V": "SC99"
},
{
"K": "Science2",
"V": "Yet to confirm"
},
{
"K": "Science2",
"V": "Not available"
}],
_schedule: {
"start": ISODate("2018-01-01T00:00:00.000+0000"),
"end": ISODate("2020-01-01T00:00:00.000+0000"),
_sessions: [{
"days": ["2018-011-02",
"2019-02-01",
"2019-06-03"]
},
{
"optional": []
}]
},
{
_id: 4,
_status: "expired",
_subjects: [{
"K": "Maths",
"V": "M010"
}],
_schedule: {
"start": ISODate("2015-01-01T00:00:00.000+0000"),
"end": ISODate("2016-01-01T00:00:00.000+0000"),
_sessions: [{
"days": []
},
{
"optional": []
}]
}
}