我试图创建一个返回BasicDBObject" queryDB"的函数。为:
public static DBObject buildQuery(String lang) {
QueryBuilder query = new QueryBuilder();
query.put("key").lessThanEquals("value1");
query.and("field1").equals(lang);
DBObject queryDB= new BasicDBObject();
queryDB.putAll(query.get());
return queryDB;
}
给了我以下内容:
Exception in thread "main" com.mongodb.QueryBuilder$QueryBuilderException: No operand for key:field1
at somepackage.QueryBuilder.get(QueryBuilder.java:442)
at somepackage.MongoClass.buildQuery(MongoClass.java:72)
at somepackage.MongoClass.getDocsOf(MongoClass.java:44)
at somepackage.App.main(App.java:39)
任何预防或解决问题的想法?
答案 0 :(得分:0)
在您的and
子句中,您正在调用equals()
Object.equals()
方法,而不是查询运算符。尝试将equals()
更改为is()
。当我更新你的代码时,这对我有用。