2011-12-05 14 views
1

MongoDB Javaドライバを使用しているため、クエリが機能しないようです。 Mongoのコマンドラインクライアントを実行している場合はMongoDBとJava:クエリで結果が返されない

{ 
    "question" : "how are you", 
    "category" : "personal", 
    "processed" : false, 
    "training" : true 
} 

db.questions.find() 

または

db.questions.find({"processed" : false, "training" : true}) 

結果は、クエリ:私はのように見えるのエントリを持っている "質問" という名前のコレクションを持っています期待通りに戻った。しかし、私のJavaコードは次のようになります:

DBObject queryObj = new BasicDBObject(); 
queryObj.put("processed", false); 
queryObj.put("training", isTrain); 

DBObject updateObj = new BasicDBObject(); 
queryObj.put("processed", true); 

DBCursor cursor = mongoCollection.find(queryObj).limit(NUM_TO_LOAD); 
mongoCollection.update(queryObj, updateObj); 

そして私に返されるカーソルは空です/更新は何も変更しません。 findObj引数をfindの呼び出しから削除すると、結果は再び期待通りに返されます。私はここで何か間違っていますか?あなたはそれがupdateObjをすべきではないライン6に間違った変数を使用し、同じよう

おかげで、
クリス隠密

答えて

2

queryObjするのではなく、見えますか?

希望isTrainは真偽値であり、値(true/false)で正しく開始されています。

+0

* facepalm *。あなたはそのコードを見てどれくらいの間、あなたが信じられません。 –

+0

あなたは大歓迎です:) – mrohnstock

関連する問題