首页 > 解决方案 > Mongo/Spring boot 从集合中删除列表中的所有文档

问题描述

有没有办法从集合中批量删除列表(列表)的所有文档?我正在考虑类似的事情:mongooperations.deleteAll(list);

它不必是一个列表,只要是我可以收集文档并批量删除它们的任何集合,而不是总是删除单个文档。

标签: javamongodbspring-boot

解决方案


这是删除文档列表的查询_id。假设_id's 是数字,这有效:

List<Integer> ids = Arrays.asList(1, 2, 3, 4);
MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "testDB");
Query q = new Query(where("_id").in(ids));
List<Test> deletedDocs = mongoOps.findAllAndRemove(q, Test.class, "testColl");
// -or-
//List<Document> deletedDocs = mongoOps.findAllAndRemove(q, "testColl");
System.out.println(deletedDocs);

推荐阅读