0

mongodb では、次のようなコマンドを使用できます

db.sessions.distinct("Ip",{ 'Application': '123'})

これにより、選択したアプリケーションのすべての一意の IP が返されます。Mongoid 経由でそれを行う方法は?

関数で2つの引数を渡そうとしましdistinctたが、例外で失敗しました'ArgumentError: wrong number of arguments (2 for 1)'

4

2 に答える 2

1

Mongoid の Distinct は引数を 1 つ取ります。つまり、distinct をフィルタリングするフィールドです。したがって、あなたの場合、次whereのように句を連鎖させることができますdistinct

 YourModel.where(Application: '123').distinct(:Ip) 

これにより、フィールド Application が「123」に等しい、フィールド Ip によって個別の YourModel のコレクションが生成されます。

于 2013-02-19T01:20:09.410 に答える
-1

完全な個別のクエリを表示してください。ユーザーコレクション(ボブという名前の3つのドキュメント)で構文に従ってみます:

db.users.distinct("_id", {name: "Bob"})

そしてそれは動作します:

[
        ObjectId("5121792d499af102889f2576"),
        ObjectId("5121792e499af102889f2577"),
        ObjectId("5121792f499af102889f2578")
]

私のMongoDBのバージョンは2.2.0です

于 2013-02-18T00:45:18.013 に答える