MongoTemplate:删除`find`返回的元素列表

时间:2014-02-06 20:10:50

标签: java mongodb spring-data mongotemplate

我正在呼叫MongoTemplate.find(query, type),并返回List<T>。我的问题是,如何在一次数据库调用中从数据库集合中删除列表中的所有元素。我知道如果我知道Query的结构,我可以使用id手动创建T,但如果我不知道T是什么,该怎么办呢?

MongoTemplate有一个remove方法,我可以通过T。我需要的是等效的removeAll(Collection<T> items, Class<T> type)

每个答案的编辑

我需要处理每个元素并确定要删除的元素,这样我就不能简单地将Query传递给remove

1 个答案:

答案 0 :(得分:0)

您可以简单地拨打find(Query, Class),而不是调用remove(Query, Class)然后删除所有返回的文档(一个集合或一个一个)。这样做要好得多,因为您不必将所有文档都返回给客户端,而是在数据库本身中发出删除查询。