Spring Data Mongodb:从数组中删除字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data Mongodb:从数组中删除字符串相关的知识,希望对你有一定的参考价值。

我有一个名为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 )

请提前。

答案

在您的@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");

以上是关于Spring Data Mongodb:从数组中删除字符串的主要内容,如果未能解决你的问题,请参考以下文章

Spring data mongodb - 获取对象数组的总和

Spring-data MongoDB地理查询

Spring Data (数据)MongoDB

spring data mongodb枚举映射转换器

如何使用 Spring Data MongoDB 通过 GridFS ObjectId 获取二进制流

1144: 零起点学算法51——数组中删数