【问题标题】:Spring Data Mongodb: remove String from ArraySpring Data Mongodb:从数组中删除字符串
【发布时间】:2020-06-08 11:44:17
【问题描述】:

我有一个名为 pub 的集合。每个文档都包含一个名为 cocktails 的字符串数组,因此:

{"id" : "0", "name" : "My Beautiful Pub", "cocktails" : ["B52", "SexOnTheBeach", "Negroni"]}

使用 Spring mongodb,我会删除每个“SexOnTheBeach”,这样:

{"id" : "0", "name" : "My Beautiful Pub", "cocktails" : ["B52", "Negroni"]}

...我的“pub”集合中的每个 pub 文档都不能包含“SexOnTheBeach”。

我想我应该使用new Update().pull() 方法,但是每次更新都不会修改我的数据库。

这个mongodb查询完美运行,但是不知道怎么翻译!

db.pub.update(
{ },
{ $pull: {  cocktails: "SexOnTheBeach" } },
{ multi: true })

Ty 提前。

【问题讨论】:

    标签: mongodb mongodb-query spring-data spring-data-mongodb


    【解决方案1】:

    在您的 @Service 类中,添加:

    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.query.Update;
    import org.springframework.data.mongodb.core.query.Query;
    
    @Autowired
    private MongoTemplate mongoTemplate;
    
    ...
    
    mongoTemplate.updateMulti(new Query(), new Update().pull("cocktails", "SexOnTheBeach"), "pub");
    

    【讨论】:

    • TY,完美的解决方案!
    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2011-05-06
    • 2017-02-10
    相关资源
    最近更新 更多