11

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

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

现在假设,我的list数组很长,我不想每次都抓取整个文档。所以我想得到objand name,但只抓住最后 5 个元素list。你如何用 Mongo 做到这一点?我正在使用 pymongo。

4

2 回答 2

20

我认为您正在寻找$slice运营商。文档在这里

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

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

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

于 2012-07-21T20:40:44.450 回答
0

使用$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 条记录。

于 2018-10-26T08:22:06.330 回答