如何仅显示MongoDB集合中数组的5个元素?

时间:2018-09-06 07:08:24

标签: arrays mongodb

简介

我试图进行查询,该查询仅输出一个数组,并且在该数组内仅输出该数组的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 :(得分:0)

我通过在投影中显式设置_id: 1找到了解决方案。此属性使用find的属性,即如果投影中包含任何字段,则所有其他字段都将被排除,除非也明确包含。<​​/ p>

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