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

{
   _id: ...,
   name: "...",
   obj: {...},
   list: [ ... ],
}

现在说,我的list数组很长,我不想每次都抓取整个文档。所以我想获取objname,但是只捕获list中的最后5个元素。您如何在Mongo上做到这一点?我正在使用pymongo。

最佳答案

我认为您正在寻找$slice运算符。文件是here

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

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

请注意,默认情况下,这还将返回_id字段。如果您不希望_id_id:0前面添加obj:1。这是JS语法,但是python语法将非常接近。

关于mongodb - 您如何在Mongo中限制数组子元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11595603/

10-10 17:02