0
サーバのmongoのバージョンは3.4.4です。 Studio 3Tで接続しました。 私はIntelliShellmongodbで集合体を使用してデータを取得できません
db.orders.aggregate([
{ $limit: 10 },
{ $skip: 10 }
])
でこのようにクエリを実行すると、私は何も返されません取得します。
しかし、私は$限度を切り替えると$スキップ、
db.orders.aggregate([
{ $skip: 10 },
{ $limit: 10 }
])
たときにそれが正常に動作します。
さて、あなたは* "私にちょうど10の結果を得て、それらの過去10をスキップする" *と尋ねました。一方、2番目の声明では「10の結果をスキップして、次の10を返す」と記載されています*。それで意味論的な言い方をすれば、それらがどう違うのかを見るのは難しいことではありません。 –
シーケンスが内部的にどのように得られるかを正確に示す[$ skip + $ limit Sequence Optimization](https://docs.mongodb.com/manual/core/aggregation-pipeline-optimization/#skip-limit-sequence-optimization)も参照してください。最初の試行が失敗する理由の直接的な例を示しています。要するに、秒は '{$ limit:20}、{$ skip:10}'に最適化されます。 –
しかし、なぜモンゴブはそれらを同じものとして扱いませんか? –