У меня есть две коллекции, foo
и bar
.
Bar имеет массив элементов, которые содержат ссылки внешнего ключа на вложенные элементы в массивах foo
.
Пример того, как foo
и bar
будут выглядеть:
Foo:
[
{
id: "abc",
foo_things: [
{
id: "def",
type: 0,
value: "someValue"
},
{
id: "ghi",
type: 1
value: "someOtherValue"
}
]
},
{
id: "abc2",
foo_things: [
{
id: "def2",
type: 2,
value: "someValue"
},
{
id: "ghi2",
type: 1,
value: "somethingDifferent"
}
]
}
]
Бар:
[
{
id: "xyz",
bar_things: [
{
id: "id",
foo_thing_id: "def",
value: "Blubb"
},
{
id: "id2",
foo_thing_id: "ghi2",
value: "Blobb"
}
]
}
]
Итак, что я пытаюсь достичь:
Найдите все foo_things
, где тип равен 0 или 2, а значение равно someValue
(это значение неизвестно во время компиляции), измените его на null, и любой bar_things
, ссылающийся на этот foo_thing
, должен иметь свои значения установите значение null или пустой массив в зависимости от типа foo_thing
.
Я немного растерялся, так как я довольно плохо знаком с MongoDB и еще не углубился в сложные запросы. Есть ли хороший способ сделать это, или мне нужно обернуть его в несколько запросов?