11

Mongoに次のデータモデルがあるとしましょう。

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

たとえば、私のlist配列は非常に長く、毎回ドキュメント全体を取得したくありません。objだから私はとを取得したいのです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 に答える