Извлечение объектов из других объектов - PullRequest
1 голос
/ 14 марта 2012

Я пользуюсь MongoDB уже неделю, и мне очень весело с ним!

Пока что тестовое приложение, которое я создаю как Projects и Milestones.Смотрите структуру ниже:

{
  "code": "test-project",
  "milestones": [
    {
      "name": "Test Milestone",
      "code": "test-milestone"
    },
    {
      "name": "Test Milestone 2",
      "code": "test-milestone-2"
    }
  ],
  "name": "Test Project"
}

Сейчас я делаю форму редактирования для Вех.Я хотел бы отредактировать, скажем, «Test Milestone 2».Итак, до сих пор я получаю соответствующий проект, а затем выбираю правильный этап в соответствующей коллекции.Но я хотел бы знать, есть ли способ напрямую получить Milestone?(в моем случае)

Если да, то не могли бы вы дать мне пример того, как это сделать, пожалуйста?

Спасибо!

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Вы можете сделать это прямым запросом.Вам просто нужно использовать Позиционный оператор .

Допустим, вы хотите обновить «Test Milestone 2» до «Test Milestone Two».Вы можете выполнить следующий запрос:

 db.Projects.update( {"milestones.name" : "Test Milestone 2"}, {$set : {"milestones.$.name" : "Test Milestone Two"}} )

* * * * * * * * * * * * * * * * * * * 100 * * содержит место вашего исходного поиска массива (первая часть оператора * update).Это позволяет вам перейти прямо к элементу массива, который вы хотите изменить.

Рад слышать, что вам нравится MongoDB - это довольно весело.

0 голосов
/ 14 марта 2012

Внедрите свой массив вех в сам проект.

Или продолжайте делать то, что вы делаете прямо сейчас.(Вы не делаете это неправильно. Это просто природа)

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