java - 使用 MongoDB Java 将新对象推送到现有文档的数组中

标签 java mongodb mongodb-java

我正在尝试学习 MongoDB,想知道如何将 POJO 插入现有集合中。我的 Collection 如下所示。

{
        "_id" : ObjectId("5e930d68618c45b052492407"),
        "game" : {
                "team1" : [ 
                    { "player" : "john", "age" : 25 },
                    { "player" : "mick", "age" : 25 }
                ],

                "team2" : [ 
                    { "player" : "john", "age" : 25 },
                    { "player" : "john", "age" : 25 }
                ]
            }
}

现在我希望能够在“team1”中插入一个新玩家,预期输出应如下所示,

{
        "_id" : ObjectId("5e930d68618c45b052492407"),
        "game" : {
                "team1" : [ 
                    { "player" : "john", "age" : 25 },
                    { "player" : "mick", "age" : 23 },
                    { "player" : "tom", "age" : 22 }   //newly inserted
                ],

                "team2" : [ 
                    { "player" : "tony", "age" : 26 },
                    { "player" : "bruce", "age" : 24 }
                ]
            }
}

我在java中使用了POJO,我的代码如下,

Player object= new Player();
newPlayer.setPlayer("tom");
newPlayer.setAge(22);

BasicDBObject setQuery = new BasicDBObject();
setQuery.append("$push", object);

collection.updateOne(Filters.and(Filters.eq("_id", "5e930d68618c45b052492407"), Filters.eq("game.team1")), setQuery);

但上述似乎不起作用并请求帮助我解决这个问题。如果您发现我的问题有任何错误,请原谅。提前致谢。

最佳答案

好吧,我自己找到了解决方案,对于那些最终遇到同样问题的人,这是我找到的解决方案。

BasicDBObject query = new BasicDBObject();
query.put("_id", valueofId);

BasicDBObject push_data = new BasicDBObject("$push", new BasicDBObject("game.team1", object));

collection.findOneAndUpdate(query, push_data);

关于java - 使用 MongoDB Java 将新对象推送到现有文档的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61172718/

相关文章:

java - 在 headless 模式下渲染 Swing 容器

java - 检查数字是否完全平方

c# - Aggregate() 的 MongoDB 结果集

javascript - mongoskin 和 mongodb 副本集群的连接问题

java - 使用 spring-data-mongodb 持久化包含对象的对象

spring - Mongodb 查询构造函数以获取原始查询字符串 Java

java - 字符串或字符串缓冲区

java - 使用 java API 从案例生成器解决方案调用规则

java - Spring + Mongo + 泛型 + 灵活性

java - Mongodb:无法保存添加到 BasicDBList 中的新元素