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);
DBObjectsを取り込むArrayListを作成できます。
List<DBObject> array = new ArrayList<DBObject>();
オブジェクト用に作成したDBObjectを配列内に追加し、作成した配列オブジェクトに追加します。
array.add(/* some object */);
最後に、メインドキュメントオブジェクトに配列を配置します。
document.put("milestones", array);
前の答えに少し拡張
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);
より良い使用:
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();