假设我在 Mongo 中有以下数据模型:
{
_id: ...,
name: "...",
obj: {...},
list: [ ... ],
}
现在假设,我的list
数组很长,我不想每次都抓取整个文档。所以我想得到obj
and name
,但只抓住最后 5 个元素list
。你如何用 Mongo 做到这一点?我正在使用 pymongo。
我认为您正在寻找$slice
运营商。文档在这里。
您正在寻找的语法是这样的:
db.coll.find({}, {obj:1, name: 1, list:{$slice: -5}}); // last 5
请注意,这也将_id
默认返回该字段。如果不想在前面_id
加上。这是 JS 语法,但 python 语法会非常接近。_id:0
obj:1
使用$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 条记录。