@ivanesi

Как получить часть документа в монго?

Например есть такой документ в коллекции authors:
{
  "name" : "Andrew Erlichson",
  "books" :  {
                [
                  {
                    "title" : "MongoDb best practice",
                    "name" : "o'Reilly",
                    "year" : "2013"
                  }
                 ]
               }
 }


Как вытащить только нулевой элемент массива books? как вытащить значение поля year?
  • Вопрос задан
  • 4443 просмотра
Решения вопроса 1
@ivanesi Автор вопроса
Нашел ответ в видеотуториале. Все решается проще:
db.authors.find()[0].books[0].year
ну или
db.authors.findOne( { name : "Andrew Erlichson" } ).books[0].year
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
anyd3v
@anyd3v
что значит нулевой элемент? первый?
docs.mongodb.org/manual/reference/method/cursor.limit

"как вытащить значение поля year?"
docs.mongodb.org/manual/reference/method/db.collec...

Вы читали хотя бы документацию?
Ответ написан
@lega
Как вытащить только нулевой элемент массива books?

Часть массива (или один элемент) можно достать с помощью $slice

как вытащить значение поля year?

db.col.find({}, {'books.year': 1}) - таким образом он должен выдать поле year (но по всем элементам массива).

В случае если вам массив не особо нужен, то можно использовать словарь вместо него с ключами 0, 1, 2, 3...
Тогда запрос будет типа такого: db.col.find({}, {'books.0.year': 1})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы