我想用Java创建一个mongo文档以插入到我的mongo集合中。目前,我正在使用的mongo文档中没有文档列表,我想向其中添加一个文档。
我的文档应如下所示:
{
id : 1,
events : [
{ event_id : 1, processed : false},
{ event_id : 2, processed : false},
.
.
],
assigned_user : 32
}
要创建mongo文档,我不得不创建
Map<String, Object> dataFields
然后将其转换为mongo文档。
所以要添加我需要的文档列表,我想到了创建
List<Document> events
然后为我需要的每个事件创建一个文档,然后将其添加到events
的列表中。
最后,我只需将列表events
添加到地图dataFields
,然后创建最终的mongo文档。
这项工作吗?如果没有,那么缺陷是什么?逻辑还是实现?
答案 0 :(得分:1)
如果您有想法,请尝试一下。如果您的项目环境不允许您尝试,请将其沙箱化。我会尝试一下,但是我的Java生锈了,这台计算机上没有JDK。从此开始:
public class MongoSandbox {
public static void main(String[] args) throws UnknownHostException {
// Connect to local test db
MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/test");
MongoClient client = new MongoClient(uri);
MongoDatabase db = client.getDatabase(uri.getDatabase());
// Get a test collection
MongoCollection<Document> docs = db.getCollection("docs");
/* Create a dummy list of events */
List<Document> events = new ArrayList<Document>();
events.add(new Document("random", "data"));
events.add(new Document("random", "data2"));
events.add(new Document("random", "data3"));
// Create your main document
Document mainDoc = new Document("events", events);
docs.insert(mainDoc);
client.close();
}
}