如何删除 Spring data Mongo DB Mongo 存储库中的列表

How to delete a list in Spring data Mongo DB Mongo repository

我有一个产品,这个产品有多个 countries.So 我想删除 mongo 中的相应国家 repository.so 我如何从 spring 数据中删除 mongo数据库存储库。 请在下面找到我的 JSON。

{ "_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);