我正在尝试查询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/
答案 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
。