具有运行时变量的MongoDB QueryBuilder方法

时间:2015-05-06 19:40:44

标签: mongodb query-builder

我试图创建一个返回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)

任何预防或解决问题的想法?

1 个答案:

答案 0 :(得分:0)

在您的and子句中,您正在调用equals() Object.equals()方法,而不是查询运算符。尝试将equals()更改为is()。当我更新你的代码时,这对我有用。