2017-01-09 14 views
0

mongo DBにデータがあります。しかし、私はモンゴでは新しいです。 Mongoから正しい記録を得るために身体を助けることができますか?mongodbの配列項目に条件を入れる方法

{ 
    "_id" : ObjectId("5872edaf9704dc26c0cb770e"), 
    "type" : "PUSH_NOTIFICATION", 
    "alerts" : [ 
     { 
      "_id" : ObjectId("5872edab9704dc26c0cb770c"), 
      "alertId" : NumberLong(0), 
      "userId" : NumberLong(1000100), 
      "alertCode" : 3, 
      "ticketId" : NumberLong(0), 
     } 
    ], 
    "registrationId" : "010080fab2695a984fc16737b4637b40d4bbcfbfcfb87752851c99fd925e8427", 
    "deleted" : false 
} 

上記は、テーブルの1つのmongoの1行です。 ticketIdが0でないレコードを取得したい。ticketIdは警告の配列であるAlert Objectの内部にある。 javaでクエリを書きたいと思います。

答えて

0

あなたはこれを試すことができます。

BasicDBObject Query = new BasicDBObject(); 
BasicDBObject fields = new BasicDBObject(); 
Query.put("alerts.ticketId",0); 
fields.put("alerts.$", 1); 

DBCursor cursor = collection.find(Query, fields); 
while (cursor.hasNext()) { 
    System.out.println(cursor.next()); 
} 

は、この情報がお役に立てば幸い!あなたがこれを行うことができます

+0

おかげで、あなたはどのようにそれを用いた基準query.addCriteriaを置くために任意のアイデアを持っていますか? – user3775713

+0

コレクションとは何ですか? – user3775713

+0

SpringフレームワークまたはJavaのコードが必要ですか? –

0

Query query = new Query(); 
query.addCriteria(Criteria.where("alerts.ticketId").not().is(0)); 

//OR 

query.addCriteria(Criteria.where("alerts.ticketId").ne(0)); 

//OR using less than(lt) and greater than(gt) operator 

query.addCriteria(Criteria.where("alerts.ticketId").lt(0).gt(0)); 
関連する問題