MongoDB Java插入嵌入式文档

4

我有一个包含嵌套文档的集合。

  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中完成此操作?

3个回答

9
使用以下代码将数据插入到数组中:
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);

请在此处查看有关更新字段的说明。http://www.mongodb.org/display/DOCS/Updating#Updating-update%28%29 - Parvin Gasimzade

3

0

...这是如何在mongo-driver版本>= 3.1(我的版本是3.2.2)中完成的:

    Document tenant = new Document("Tenant_Id", 2)
            .append("Tenant_Info", "check")
            .append("Prop_Info", "client");

    Bson filter = Filters.eq( "System_Info", "...." ); //get the parent-document
    Bson setUpdate = Updates.push("Tenant", tenant);

    coll.updateOne(filter, setUpdate);

希望这能帮助到某个人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接