4

where条件でコレクションから個別の値を取得する方法は?

たとえば、ステータスとworkerIdを他のフィールドとともに含むWorkerクラスがあります。ここでは、status="ACTIVE"を持つ個別のworkerIdを取得したいと考えています。

私は十分なグーグルを作りましたが、解決策を見つけることができませんでした

どんな助けでもいただければ幸いです

前もって感謝します!

編集

申し訳ありませんが、質問を適切に入れていませんでした。mongodb ネイティブ クエリを使用するのではなく、morphia を使用してこれを実行したいと考えています。

これは MapReduce を使用して実行できますか? 助けてください!

4

2 に答える 2

14

投稿が遅くなり申し訳ありません、

BasicDBObject dbObject=new BasicDBObject();
dbObject.append("status","ACTIVE");

これdbObjectは where 条件として機能し、

DBCollection dBCollection = datastore.getCollection(MyEntity.class);
List id=dBCollection.distinct("id",dbObject);

この ID リストには、status="ACTIVE"

于 2013-05-10T06:56:49.203 に答える
0

distinctは、クエリではなくコマンドとしてサポートされています (理由は不明です)。以下を試してください

db.runCommand ( 
    { 
        distinct: 'name-of-collection',
        key: 'worker-id',
        query: { 'status': 'ACTIVE' }
    } 
)
于 2013-04-25T16:27:27.240 に答える