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

Mongodb 如何限制Mongo中的数组子元素?,mongodb,pymongo,Mongodb,Pymongo,假设我在Mongo中有以下数据模型: { _id: ..., name: "...", obj: {...}, list: [ ... ], } 现在,假设我的列表数组很长,我不想每次都抓取整个文档。因此,我想获取obj和name,但只获取列表中的最后5个元素。你是如何和Mongo合作的?我正在使用pymongo。我想您正在寻找$slice操作符。文档是 您要查找的语法如下所示: db.coll.find({}, {obj:1, name: 1, list:{$slic

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

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

现在,假设我的
列表
数组很长,我不想每次都抓取整个文档。因此,我想获取
obj
name
,但只获取
列表中的最后5个元素。你是如何和Mongo合作的?我正在使用pymongo。

我想您正在寻找
$slice
操作符。文档是

您要查找的语法如下所示:

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

请注意,默认情况下,这也将返回
\u id
字段。如果您不想要
\u id
obj:1
前面添加
\u id:0
。这是JS语法,但python语法非常接近。

使用$slice运算符限制数组元素

GeoLocation.find({},{name: 1, geolocation:{$slice: -5}})
    .then((result) => {
      res.json(result);
    })
    .catch((err) => {
      res.status(500).json({ success: false, msg: `Something went wrong. ${err}` });
});
其中地理位置是数据数组,从中我们得到最后5条记录