Mongoに次のデータモデルがあるとしましょう。
{
_id: ...,
name: "...",
obj: {...},
list: [ ... ],
}
たとえば、私のlist
配列は非常に長く、毎回ドキュメント全体を取得したくありません。obj
だから私はとを取得したいのです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つのレコードを取得します。