Как я могу установить атрибут в каждом поддокументе в MongoDB? - PullRequest
0 голосов
/ 02 декабря 2011

Если у меня есть такой документ, как:

{title: "hello", 
 formats:{mp4: {status: "processing"},
          webm: {status: "processing" }} }

Как мне написать запрос $ set, чтобы установить для обоих внутренних состояний значение «выполнено»

Ответы [ 2 ]

0 голосов
/ 02 декабря 2011
db.collection.update({title: "hello"}, {
    $set: {
        "formats.mp4.status": "complete", 
        "formats.webm.status": "complete"}
    })
0 голосов
/ 02 декабря 2011

Я бы переработал вашу схему, чтобы она выглядела примерно так:

{
  "title":"Hello",
  "formats":[{
      "format":"mp4",
      "status":"processing",
  },
   {
      "format":"mp4",
      "status":"processing",
  }
  ]
 }

Таким образом, вы не форсируете конкретную метку и не имеете более абстрактной схемы. Вам бы все равно нужно было дотронуться до каждого статуса, обновление для них не все.

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