我正在使用 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 参数,结果将再次按预期返回。我在这里做错了什么吗?
谢谢,
克里斯·科弗特
最佳答案
看起来,您在第 6 行使用了错误的变量。它不应该是 updateObj
,而不是 queryObj
吗?
希望 isTrain
是一个 boolean 值,并使用值(真/假)正确启动。
关于java - MongoDB 和 Java : Query doesn't return results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381948/