使用Java驱动程序的MongoDB异常

时间:2015-12-03 22:47:53

标签: java mongodb database nosql

嘿所以我正在尝试使用Java驱动程序编写以下mongoDB:

db.testDB.find( {$and : [ {EntryFee : {"$lte" : 15} }, {EntryFee : {"$gte" : 10} } ] } ) 

我看起来像这样的java代码,其中minEntryFee和maxEntryFee都是整数。

if(minEntryFee != null && maxEntryFee != null ){
        BasicDBList list = new BasicDBList();
        list.add(BasicDBObjectBuilder.start().push("EntryFee").add("$gte", minEntryFee));
        list.add(BasicDBObjectBuilder.start().push("EntryFee").add("$lte", maxEntryFee));
        builder.add("$and", list);
        return builder.get();
    }

但是当我运行此代码时,我收到以下错误:

无法找到具有根本原因的com.mongodb.BasicDBObjectBuilder类的编解码器  org.bson.codecs.configuration.CodecConfigurationException:无法找到com.mongodb.BasicDBObjectBuilder类的编解码器。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

当您通过Java驱动程序发送请求时,它会尝试将请求序列化为BSON格式,如果遇到具有未知编解码器的对象,则会抛出您上面提到的异常。

为了解决您的错误,您可以尝试更改:

BasicDBObjectBuilder.start().push("EntryFee").add("$gte", minEntryFee)

BasicDBObjectBuilder.start().push("EntryFee").add("$gte", minEntryFee).get()

至于第一行不返回DBObject,而是返回驱动程序中没有任何相关编解码器的BasicDBObjectBuilder。

谢谢,Yevhenii