MongoDB和Java:Query不返回结果

时间:2011-12-05 06:57:59

标签: java mongodb

我正在使用MongoDB Java驱动程序,似乎无法使查询生效。我有一个名为“Questions”的集合,其条目如下:

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

运行Mongo命令行客户端时,查询

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);

并且返回给我的光标为空/更新不会进行任何更改。如果我从find调用中删除queryObj参数,则会再次按预期返回结果。我在这里做错了吗?

谢谢,
克里斯科弗特

1 个答案:

答案 0 :(得分:2)

看起来,您在第6行使用了错误的变量。不应该是updateObj而不是queryObj吗?

希望isTrain是布尔值,并使用值(true / false)正确启动。