我是MongoDB的初学者,我正在使用JAVA驱动程序来玩它。
我有以下代码
MongoClient client = new MongoClient();
DB d = client.getDB("world");
DBCollection c = d.getCollection("zips");
DBCursor cursor = c.find();
现在我的问题是我想使用一个简单的光标来浏览文档。不推荐使用getDB()方法,但它可以正常工作。在文档中,它提到getDB可以用MongoClient.getDatabase()替换;但getDatabase()返回MongoDatabase而不是DB。
有人可以指出在不使用任何弃用方法的情况下制作DBCursor的正确方法。感谢。
PS:我知道有像morphia,jongo等框架,但请不要讨论它们。我想目前只使用JAVA驱动程序。 编辑:区别在于在JAVA驱动程序中获取游标而不是在DB和MongoClient之间答案 0 :(得分:10)
是。确实如此。你可以用getDatabase替换getDB。这就是你如何使用它。
/**** Get database ****/
// if database doesn't exists, MongoDB will create it for you
MongoDatabase mydatabase = mongoClient.getDatabase("mydatabase");
/**** Get collection / table from 'testdb' ****/
// if collection doesn't exists, MongoDB will create it for you
FindIterable<Document> mydatabaserecords = mydatabase.getCollection("collectionName").find();
MongoCursor<Document> iterator = mydatabaserecords.iterator();
while (iterator.hasNext()) {
Document doc = iterator.next();
// do something with document
}
示例:
因此,请说明您的文档如下所示:
{
"name": "Newton",
"age": 25
}
然后可以按以下方式获取字段
while (iterator.hasNext()) {
Document doc = iterator.next();
String name = doc.getString("name");
int age = doc.getInteger("age");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
我希望这可以解除你的怀疑。