创建包含 Java 文档列表的 MongoDB 文档

moh*_*amm 5 java mongodb

我想用 Java 创建一个 MongoDB 文档以插入到我的 MongoDB 集合中。目前,我正在使用的 MongoDB 文档中没有文档列表,我想向其中添加一个。

我的文档应该如下所示:

{
 id : 1,
 events : [
           { event_id : 1, processed : false},
           { event_id : 2, processed : false},
           .
           .
          ],
 assigned_user : 32
}
Run Code Online (Sandbox Code Playgroud)

为了创建 MongoDB 文档,我被迫创建一个

Map<String, Object> dataFields
Run Code Online (Sandbox Code Playgroud)

然后将其转换为 MongoDB 文档。

因此,要添加我需要的文档列表,我想创建

 List<Document> events
Run Code Online (Sandbox Code Playgroud)

然后为我需要的每个事件创建一个文档,然后将其添加到events.

最后,我只需将列表添加events到映射中dataFields,然后创建最终的 MongoDB 文档。

这行得通吗?如果不是的话,缺陷是什么?逻辑还是实现?

Cyc*_*mic 2

如果您有想法,请尝试一下。如果您的项目环境不允许您尝试,请将其沙箱化。我会尝试一下,但是我的 Java 很生疏,而且我这台计算机上没有\xe2\x80\x99t 的 JDK。从这个开始:

\n
public class MongoSandbox {\n\n    public static void main(String[] args) throws UnknownHostException {\n\n        // Connect to the local test db\n        MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017/test");\n        MongoClient client = new MongoClient(uri);\n        MongoDatabase db = client.getDatabase(uri.getDatabase());\n\n        // Get a test collection\n        MongoCollection<Document> docs = db.getCollection("docs");\n\n        // Create a dummy list of events\n        List<Document> events = new ArrayList<Document>();\n        events.add(new Document("random", "data"));\n        events.add(new Document("random", "data2"));\n        events.add(new Document("random", "data3"));\n\n        // Create your main document\n        Document mainDoc = new Document("events", events);\n        docs.insert(mainDoc);\n\n        client.close();\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n