如何在mongodb中查询文档

时间:2015-04-06 17:59:05

标签: java mongodb

我是mongoDB的新手,并且已经设置了一个java应用程序来与我的数据库进行通信。我的数据库中只有一个包含多个文档的集合。有没有办法让我可以通过单个查询来获取我的集合,然后以某种方式访问​​每个文档中的所有字段?

我尝试创建一个查询,然后将所有DBObject添加到ArrayList。但是,一旦我完成了这项工作,我就无法弄清楚如何访问每个文档中的数据。

这是我到目前为止所拥有的:

ArrayList<DBObject> docs = new ArrayList<DBObject>();
DBCollection coll = db.getCollection("testCollection");

DBCursor cursor = coll.find();
try {
   while(cursor.hasNext()) {
   docs.add(cursor.next());
}
} finally {
   cursor.close();
}

//how do I access everything in my docs???
docs.get(0).find("id", 1);

2 个答案:

答案 0 :(得分:0)

是的,您可以访问文档中的所有值。 迭代下面的文档

for(DBObject obj: docs){
    obj.get("_id");
}

答案 1 :(得分:0)

由于列表中的每个对象都是DBObject,因此您应该可以使用以下内容访问字段值:

BasicDBObject doc = docs.get(0);
String fieldValue = doc.getString("nameOfField");

你不能像在数组列表上那样进行查找(“id”,1)但是你可以在你的DBCollection“coll”上进行。格式会有点不同,比如coll.find({id:1})。然后,您将获得结果的集合。如果您只查找单个记录,请使用coll.findOne() like this

您必须以另一种方式遍历数组列表以进行自己的搜索。我建议创建一个包含属性的类,以匹配每个文档的字段。这是另一种可能有用的资源:

converting-dbobject-to-java-object-while-retrieve-values-from-mongodb

如果您还没有看过,我还建议this tutorial链接。