2013-07-10 16 views
5

に$かと$を使用してJavaでMongoDBのクエリを作成:は、私はこのMongoDBのクエリを作成するために、MongoDBのAPIを使用してJavaコードを記述しようとしています

{ "$or": [{"prd" : {"$in" : ["1234", "0987"]}} , {"rsin" : "3228742"}]} 

ここで私はこれまでのところで働いているコードです

QueryBuilder builder = new QueryBuilder(); 

if (builder == null) { 
    builder = QueryBuilder.start(); 
} 

if (mongoKey.equals("prd")){ 

    ArrayList<String> vals = new ArrayList<String>(); 

    for (int i=0; i < prdList; i++){ 
     vals.add(prdList.get(i)); 
    } 

    DBObject obj = new BasicDBObject (mongoKey, new BasicDBObject("$in", vals)); 
    builder.or(obj); 

}else { 
     builder.and(mongoKey).is(mongoValue); 
} 

これは、現在、間違った構文をプリントアウトされます。

{ "$or": [{"prd" : {"$in" : ["1234", "0987"]}}] , "rsin" : "3228742"} 

任意のヘルプ?

答えて

3

問題がelseブロックにある場合、andの代わりにorメソッドを使用する必要があります。

... 
}else { 
    builder.or(new BasicDBObject(mongoKey, mongoValue)); 
} 

これにより、必要なクエリが生成されます。

+0

これは機能します。ありがとう。後半の投票には申し訳ありません。 –

関連する問題