你如何限制Mongo中的数组子元素?

Art*_*Art 10 mongodb pymongo

假设我在Mongo中有以下数据模型:

{
   _id: ...,
   name: "...",
   obj: {...},
   list: [ ... ],
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说,我的list数组非常长,我不想每次都抓住整个文档.所以,我想objname,但只抢在最后5个元素list.你如何使用Mongo做到这一点?我正在使用pymongo.

Gat*_* VP 19

我想你正在寻找$slice运营商.文件在这里.

您正在寻找的语法是这样的:

db.coll.find({}, {obj:1, name: 1, list:{$slice: -5}}); // last 5
Run Code Online (Sandbox Code Playgroud)

请注意,这也将_id默认返回该字段.如果你不想在前面_id添加.这是JS语法,但python语法非常接近._id:0obj:1

  • [docs.mongodb/$切片(http://docs.mongodb.org/manual/reference/operator/projection/slice/) (3认同)