使用MongoDB Java将新对象推入现有文档的数组中

我正在尝试学习MongoDB,并且想知道如何将POJO插入现有集合中。我的收藏如下。

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

现在,我希望能够在“ team1”中插入一个新的播放器,并且预期的输出应如下所示,

{
        "_id" : ObjectId("5e930d68618c45b052492407"),"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);

但是以上方法似乎无效,因此请求我提供帮助。如果您发现我的问题有任何错误,请原谅。谢谢。

fdsafdsaga 回答:使用MongoDB Java将新对象推入现有文档的数组中

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

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

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

collection.findOneAndUpdate(query,push_data);
,

您可以使用以下代码将新的子文档(或对象)添加到数组中。这使用Updates构建器类:

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.anonymous().authorities("ROLE_ANONYMOUS")
                .and()
                .authorizeRequests()
                .antMatchers(HttpMethod.POST,"/**").permitAll();
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        web
                .ignoring()
                .antMatchers("/**");
    }

}
本文链接:https://www.f2er.com/2458589.html

大家都在问