我们如何通过java驱动程序查询嵌入式文档?

时间:2012-07-15 05:43:12

标签: java mongodb document

我想从mongodb.from一个简单的文档中通过java查询访问嵌入式文档,但是我们怎样才能从嵌入式文档中访问?

2 个答案:

答案 0 :(得分:7)

如果我理解正确,您可以在下面找到问题的答案。

假设您有以下嵌套文档。

{ "key1" : "value1",
  "key2" : {
             "key21" : "value21",
             "key22" : "value22"
           }
}

如果您要对嵌套文档进行查询,则可以使用以下java代码访问嵌入对象。

DBCollection coll = db.getCollection("collectionName");
BasicDBObject query = new BasicDBObject();
query.put("key2.key21", new BasicDBObject("$eq", "value21"));
DBCursor cur = coll.find(query);

如果您要从文档中提取嵌入文档,则可以使用 Map/ReduceAggregation framework.

Ian Daniel仍然添加了代码来插入您提出的嵌套文档。您还可以访问this页面查看一些详细示例。

答案 1 :(得分:4)

以下Java代码将插入{ID:23 {Name:{"FirstName": "Ahmad", "SecondName":"Khan"}}

形式的文档
Mongo mongo = new Mongo();
DB db = mongo.getDB("test");
DBCollection people = db.getCollection("people");

BasicDBObject name = new BasicDBObject();
name.put("FirstName", "Ahmad");
name.put("LastName", "Khan");

BasicDBObject person = new BasicDBObject();
person.put("ID", 23);
person.put("Name", name);

people.insert(person);