创建一个包含Java文档列表的MongoDB文档[已关闭]

j8ag8udp  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(127)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
11个月前关闭。
Improve this question
我想在Java中创建一个MongoDB文档以插入到我的MongoDB集合中。目前,我正在使用的MongoDB文档中没有文档列表,我想添加一个。
我的文档应该看起来像这样:

{
 id : 1,
 events : [
           { event_id : 1, processed : false},
           { event_id : 2, processed : false},
           .
           .
          ],
 assigned_user : 32
}

要创建MongoDB文档,我必须创建一个

Map<String, Object> dataFields

然后将其转换为MongoDB文档。
为了添加我需要的文档列表,我想到创建

List<Document> events

然后为我需要的每个事件创建一个文档,然后将其添加到events的列表中。
最后,我将简单地将列表events添加到MapdataFields中,然后创建最终的MongoDB文档。
这会起作用吗?如果不起作用,缺陷是什么?逻辑还是实现?

mftmpeh8

mftmpeh81#

如果你有一个想法,尝试一下。如果你的项目环境不允许你尝试,沙盒它。我会给予它一个尝试,但我的Java是生 rust 的,我没有在这台计算机上的JDK。从这个开始:

public class MongoSandbox {

    public static void main(String[] args) throws UnknownHostException {

        // Connect to the 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();
    }
}

相关问题