Mongodb 如何在Spring data Mongo DB Mongo存储库中删除列表
我有一个产品,而这个产品有多个国家/地区。因此我想在mongo存储库中删除相应的国家/地区。那么我如何从spring data mongodb存储库中删除这些国家/地区呢。 请在下面找到我的JSONMongodb 如何在Spring data Mongo DB Mongo存储库中删除列表,mongodb,spring-data,mongorepository,Mongodb,Spring Data,Mongorepository,我有一个产品,而这个产品有多个国家/地区。因此我想在mongo存储库中删除相应的国家/地区。那么我如何从spring data mongodb存储库中删除这些国家/地区呢。 请在下面找到我的JSON { "_id" : ObjectId("565e0e1758da2b685eef727f"), "offeringId" : "PMRS674913", "offeringType" : "FEATURE", "service" : "HBOGO", "countries" : [
{ "_id" : ObjectId("565e0e1758da2b685eef727f"),
"offeringId" : "PMRS674913",
"offeringType" : "FEATURE",
"service" : "HBOGO",
"countries" : [
{
"country" : "OTT",
"isoCode" : "124",
"startDate" : "2015-01-01T00:00:00.000-05:00",
"endDate" : "2015-01-31T00:00:00.000-05:00"
},
{
"country" : "United States",
"isoCode" : " 456",
"startDate" : "2015-01-01T00:00:00.000-05:00",
"endDate" : "2015-01-31T0000:00.000-05:00"
}
]
}
您可以使用以下查询来执行此操作:
db.collection.update(
{ "countries" : { $elemMatch : { "country" : "OTT" } } } ,
{ $pull : { "countries" : { "country" : "OTT" } } },
{ multi : true }
)
在Spring
中,必须使用以下语法:
Query query = new Query();
query.addCriteria(Criteria.where("countries")
.elemMatch(Criteria.where("country").is("United States")));
Update update = new Update();
update.pull("countries", new BasicDBObject("country", "United States"));
mongoTemplate.updateMulti(query, update, collection);
你可能想要阅读,这大大提高了获得有用答案的可能性。您可能会发现的优秀文章很有帮助。如果列表中多次出现同一个国家,请使用
{multi:true}
。感谢您的回复。但是我想根据国家名称从国家中删除整个国家对象。您是指整个国家
键吗?更新后您能提供我想要的最终输出吗?您好,下面是我实际的json。{“_id”:ObjectId(“565e0e1758da2b685eef727f”),“offeringId:“PMRS674913”,“offeringType:“FEATURE”,“service:”HBOGO”,“countries:“[{“country:”OTT”,“isoCode:”124”,“startDate:”“2015-01-01T00:00:00.000-05:00”,“结束日期”:“2015-01-31T00:00:00.000-05:00”},{“国家”:“美国”,“等时码”:“456”,“起始日期”:“2015-01-01T00:00:00.000-05:00”,“结束日期”:“2015-01-31T0000:00.000-05:00”}删除国家OTT后,最终输出将是{(“565e0e1758da2b685eef727f”),“报价ID”:“PMRS674913”,“报价类型”:“功能”,“服务”:“HBOGO”,“国家”:[{“国家”:“美国”,“等码”:“456”,“起始日期”:“2015-01-01T00:00:00.000-05:00”,“结束日期”:“2015-01-31T0000:00.000-05:00”}]