4

MongoDB (PHP) で個別のクエリを注文する方法はありますか? それに skip() と limit() を適用できればもっといいでしょう。しかし、私はまだこれを行う方法を見つけていません。

SQL では、次のようにします。

SELECT distinct(fieldname) 
FROM tablename
ORDER BY fieldname
LIMIT 10
OFFSET 100
4

1 に答える 1

4

この種のクエリは、MongoDB 2.2の新しいAggregation Frameworkを使用して実装できます。

db.collname.aggregate(
    { $group : { _id : "$fieldname" }},
    { $sort : { _id: 1 }},
    { $skip : 100 },
    { $limit : 10 }
);

特に注意すべき制限事項がいくつかあります。

  • 結果はインラインで返されるため、最大ドキュメント サイズ (MongoDB 2.2 の場合は 16Mb) を超えることはできません。
  • 単一の集計操作がシステム RAM の 10% を超えて消費する場合、操作はエラーを生成します。
于 2012-09-17T12:44:57.790 に答える