Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java向MongoDB文档添加数组?_Mongodb_Mongodb Java - Fatal编程技术网

如何使用Java向MongoDB文档添加数组?

如何使用Java向MongoDB文档添加数组?,mongodb,mongodb-java,Mongodb,Mongodb Java,我想使用java驱动程序在mongoDB中创建以下文档模式 { "_id": { "$oid": "513e9820c5d0d8b93228d7e8" }, "suitename": "testsuite_name", "testname": "testcase_name", "milestones": [ { "milestone_id": "359", "testplans": [ { "plan

我想使用java驱动程序在mongoDB中创建以下文档模式

{
  "_id": {
    "$oid": "513e9820c5d0d8b93228d7e8"
  },
  "suitename": "testsuite_name",
  "testname": "testcase_name",
  "milestones": [
    {
      "milestone_id": "359",
      "testplans": [
        {
          "pland_id": "965",
          "runs": [
            6985,
            5896
          ]
        },
        {
          "plan_id": "984",
          "runs": [
            9856,
            3684
          ]
        }
      ]
    }
  ]
}
我有以下代码

BasicDBObject testObject = new BasicDBObject();
BasicDBObject milestoneObject = new BasicDBObject();

testObject.put("suitename", testsuite);
testObject.put("testname", testcase);
testObject.put("milestones", new BasicDBObject("milestone_id", "2333"));
locations.insert(testObject);
但这并不是以数组的形式生成里程碑。如何将里程碑添加为阵列?我现在用我的代码得到这个

{
  "_id": {
    "$oid": "513f93dac5d0e2439d34308e"
  },
  "suitename": "test_deployment_disable_client.TestDeploymentDisableClient",
  "testname": "test_deployment_disable_client",
  "milestones": {
    "milestone_id": "2333"
  }
}

换成这样:

testObject.put("suitename", testsuite);
testObject.put("testname", testcase);         
List<BasicDBObject> milestones = new ArrayList<>();
milestones.add(new BasicDBObject("milestone_id", "2333"));
testObject.put("milestones", milestones);
locations.insert(testObject);
testObject.put(“suitename”,testsuite);
put(“testname”,testcase);
列表里程碑=新的ArrayList();
里程碑。添加(新的基本目标(“里程碑id”,“2333”);
testObject.put(“里程碑”,里程碑);
插入(testObject);

您可以创建一个接受DBObjects的ArrayList

List<DBObject> array = new ArrayList<DBObject>();
最后,将数组放入主文档对象中

document.put("milestones", array);
更好地使用:

MongoClient client = new MongoClient("localhost",27017);

MongoCollection<Document> collection =        client.getDatabase("db").getCollection("collection");

List<Document> docs=new ArrayList<>();
docs.add();

collection.insertMany(docs);

client.close();
MongoClient客户端=新的MongoClient(“localhost”,27017);
MongoCollection collection=client.getDatabase(“db”).getCollection(“collection”);
列表文档=新建ArrayList();
docs.add();
collection.insertMany(文档);
client.close();

对前面的答案几乎没有扩展

    BasicDBObject testObject = new BasicDBObject();
    testObject.put("type", "milestones");
    testObject.put("usecase", "milestone_type");

    List<BasicDBObject> testplans = new ArrayList<>();
    testplans.add(new BasicDBObject("plan_id","3232"));
    testplans.add(new BasicDBObject("plan_day","sunday"));


    BasicDBObject milestoneObject = new BasicDBObject();
    milestoneObject.put("milestone_id", "3232");
    milestoneObject.put("plans", testplans);


    List<BasicDBObject> milestones = new ArrayList<>();
    milestones.add( milestoneObject);
    testObject.put("milestones", milestones);


    locations.insert(testObject);
BasicDBObject testObject=new BasicDBObject();
put(“类型”、“里程碑”);
put(“用例”、“里程碑类型”);
List testplans=new ArrayList();
添加(新的基本对象(“计划id”、“3232”);
添加(新的基本对象(“计划日”、“星期日”);
BasicDBObject milestoneObject=新的BasicDBObject();
milestoneObject.put(“里程碑id”,“3232”);
milestoneObject.put(“计划”,测试计划);
列表里程碑=新的ArrayList();
里程碑。添加(milestoneObject);
testObject.put(“里程碑”,里程碑);
插入(testObject);
    BasicDBObject testObject = new BasicDBObject();
    testObject.put("type", "milestones");
    testObject.put("usecase", "milestone_type");

    List<BasicDBObject> testplans = new ArrayList<>();
    testplans.add(new BasicDBObject("plan_id","3232"));
    testplans.add(new BasicDBObject("plan_day","sunday"));


    BasicDBObject milestoneObject = new BasicDBObject();
    milestoneObject.put("milestone_id", "3232");
    milestoneObject.put("plans", testplans);


    List<BasicDBObject> milestones = new ArrayList<>();
    milestones.add( milestoneObject);
    testObject.put("milestones", milestones);


    locations.insert(testObject);