我正在使用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参数,则会再次按预期返回结果。我在这里做错了吗?
谢谢,
克里斯科弗特
答案 0 :(得分:2)
看起来,您在第6行使用了错误的变量。不应该是updateObj
而不是queryObj
吗?
希望isTrain
是布尔值,并使用值(true / false)正确启动。