bson无法转换为DBObject

时间:2016-08-03 08:50:40

标签: java mongodb

我正在尝试查询mongodb,因为它在官方文档页面上的示例中显示但它在Netbeans上给出了以下错误

  

bson无法转换为DBObject

这是代码

MongoClient mongoClient = new MongoClient("localhost", 27017);

// Now connect to your databases
DB db = mongoClient.getDB("webAppDB");
System.out.println(db.getCollectionNames());
System.out.println("Connect to database successfully");
DBCollection collection = db.getCollection("users");
Document myDoc = collection.find(eq("i", 71)).first(); // Error Line

示例的链接
http://mongodb.github.io/mongo-java-driver/3.2/driver/getting-started/quick-tour/

1 个答案:

答案 0 :(得分:2)

您使用DBCollection方法find()具有签名DBCursor find(DBObject query),因此您应该传递DBObject作为其参数。

eq()方法在Filters中定义并且具有签名<TItem> Bson eq(String fieldName, TItem value),因此它返回Bson类型,而不是DBObject

要将Bson类型传递给find()方法,您应该使用MongoCollection,(其中find()是FindIterable<TDocument> find(Bson filter)),而不是DBCollection

MongoCollection较新,因为它在v3.0发布后可用。因此,也许你想坚持下去,而不是DBCollection