2012-09-04 138 views
3

我有一个嵌入文档的集合。mongodb java插入嵌入文档

System 
    { 
    System_Info: ..., 

    Tenant: [ 
    { 
     Tenant_Id: ..., 
     Tenant_Info: ..., 
     Prop_Info: ... 
    }, 
    { 
     Tenant_Id: ..., 
     Tenant_Info: ..., 
     Prop_Info: ... 
    } ] 

}

如果我需要插入这样

 Tenant { Tenant_Id:2,Tenant_Info:"check",prop_info:"client"}. 

什么插入MongoDB的查询嵌入文档另一租户信息?以及如何使用java做到这一点?

回答

7

使用下面的代码插入阵列:

BasicDBObject query = new BasicDBObject(); 
query.put("System_Info", "...."); 

BasicDBObject tenant = new BasicDBObject(); 
tenant.put("Tenant_Id", 2); 
tenant.put("Tenant_Info", "check"); 
tenant.put("Prop_Info", "client"); 

BasicDBObject update = new BasicDBObject(); 
update.put("$push", new BasicDBObject("Tenant",tenant)); 

coll.update(query, update,true,true); 
+0

谢谢。我知道了。我可以知道那是真的,真的意思吗? – Ramya

+0

在这里检查更新字段的解释。 http://www.mongodb.org/display/DOCS/Updating#Updating-update%28%29 –

3

你是否试图将另一个Tenant添加到数组中?如果是这样,你会想创建一个代表Tenant的DBObject,然后$将它推到数组上。

在Java中,嵌入式文档由DBObjects(其中BasicDBObject是子类)表示。这里是将嵌入文档,从文档的例子:

http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-InsertingaDocument

另外,这里是在Java中使用$推的一个例子:

Updating an array in MongoDB using Java driver