Java MongoDB изменяет все значения для соответствия внешним ключам - PullRequest
0 голосов
/ 03 мая 2019

У меня есть две коллекции, 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 и еще не углубился в сложные запросы. Есть ли хороший способ сделать это, или мне нужно обернуть его в несколько запросов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...