我在使用MongoDB的MongoDB中使用Spring Data。如何使用查詢註釋刪除MongoRepository中的項目?
我想知道是否有可能通過使用查詢註釋過濾刪除。我一直在尋找和谷歌,我找不到任何文件。
我在使用MongoDB的MongoDB中使用Spring Data。如何使用查詢註釋刪除MongoRepository中的項目?
我想知道是否有可能通過使用查詢註釋過濾刪除。我一直在尋找和谷歌,我找不到任何文件。
@Query(value="{id : $0}", delete = true)
public Person deleteBy
不幸的是,spring數據並沒有提供任何方法來刪除基於查詢的文檔。而@Query
註釋僅用於查找文檔。
你可以做的是實現一個custom repository,根據你的需要刪除文檔。
也許你可以使用存儲庫刪除查詢。下面是documentation一個例子:
public interface PersonRepository extends MongoRepository<Person, String> {
List <Person> deleteByLastname(String lastname);
Long deletePersonByLastname(String lastname);
}
使用返回類型列表將檢索和實際刪除它們之前返回所有匹配的文件。數字返回類型直接刪除返回已刪除文檔總數的匹配文檔。
這似乎是最新的截至目前,所以我認爲這應該是最好的答案。 –
庫:
@Component
public interface SomeRepository extends MongoRepository<SomeObject, String> {
@Query("{ '_id' : ?0 }")
SomeObject findById(String _id);
}
代碼中一些類:
@Autowired
private SomeRepository pRepo;
public void delete(String id) {
pRepo.delete(pRepo.findById(id));
}
這將導致2個mongo查詢而不是單個刪除(標準)。 –
謝謝!,爲我工作。 (缺少「delete = true」) – andreyro