Как отобразить только 5 элементов массива из коллекции MongoDB? - PullRequest
0 голосов
/ 06 сентября 2018

Введение

Я пытаюсь сделать запрос, который выводит только массив, и в этом массиве выводится только 5 элементов этого массива.Я заставил их работать индивидуально, но не могу заставить их работать вместе.

Код

Вывести только массив во всей его полноте:

db.mycoll.find({
    "_id": ObjectId("5b55d0a34270ce58b8bfabcd"),     
    "myarr.platform": "9 and 3 quarters"
},{
    myarr: 1
}).pretty()

Выведите только 5 элементов массива, но также отображает другие поля:

db.mycoll.find({
    "_id": ObjectId("5b55d0a34270ce58b8bfabcd"),     
    "myarr.platform": "9 and 3 quarters"
},{
    myarr:{ $slice: 5 }
}).pretty()

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 06 сентября 2018

Я нашел решение, явно указав _id: 1 в проекции. При этом используется свойство find, что, если какое-либо поле включено в проекцию, все остальные поля будут исключены, кроме случаев, когда это явно указано.

db.mycoll.find({
     "_id": ObjectId("5b55d0a34270ce58b8bfabcd"),     
     "myarr.platform": "9 and 3 quarters"
},{
    "myarr: { $slice: 5 },
    "_id" : 1
}).pretty()

Подробнее читайте здесь: https://docs.mongodb.com/manual/reference/method/db.collection.find/#projection

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