Mongodb 使用Springdata mongo Query删除集合中的所有文档
我想实现一个delete方法,删除集合中的所有文档。我正在使用MongoDB和Spring数据。这可以使用MongoShell中的db.myCollection.remove({})来完成。但我想在我的数据访问层中编写一个方法来实现这一点。我在Dao类中没有使用MongodbTemplate。我想知道如何使用Query实现这一点Mongodb 使用Springdata mongo Query删除集合中的所有文档,mongodb,spring-data-mongodb,Mongodb,Spring Data Mongodb,我想实现一个delete方法,删除集合中的所有文档。我正在使用MongoDB和Spring数据。这可以使用MongoShell中的db.myCollection.remove({})来完成。但我想在我的数据访问层中编写一个方法来实现这一点。我在Dao类中没有使用MongodbTemplate。我想知道如何使用Query实现这一点 Query query = new Query(); 有人能告诉我怎么做吗。你最好删除整个收藏(如果可能的话),而不是删除所有文档。为了性能和分配 您可以尝试以下方法
Query query = new Query();
有人能告诉我怎么做吗。你最好删除整个收藏(如果可能的话),而不是删除所有文档。为了性能和分配 您可以尝试以下方法:
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection collection = db.getCollection("test_collection");
collection.drop();
如果您确实要删除所有(我认为),而不是:
collection.drop();
使用:
Query
是spring数据mongodb的一部分,如果不能使用MongoTemplate
,那么Query
可能也不相关 使用MongoRepository的。在幕后使用mongoTemplate调用该方法
从调用方法someRepository.deleteAll()
正如其他答案所指出的,滴落收集可能是有效的。为此,您需要直接使用MongoTemplate并使用实体类或集合名称调用。您可以删除集合并再次创建它:
mongoTemplate.dropCollection("collectionName");
mongoTemplate.createCollection("collectionName");
你可以直接使用
mongoTemplate.remove(newquery(),collectionName);
如果您在模式中有相当大的更改,最好是删除集合。
MongoTemplate.dropCollection(collectionName)
。
但要求是删除您使用的所有文档
MongoTemplate.remove(新建查询(),集合名称)
或
crudepository.deleteAll()
您能详细介绍一下Query
导入的类吗?它是来自org.springframework.data.mongodb.repository
还是org.springframework.data.mongodb.core.query
包?您使用的是mongoTemplate吗?根据我的要求,我不能删除集合。我需要保留这些收藏品。因此,我需要一种在不删除集合的情况下删除集合中的整个文档的方法。根据我的要求,我不能删除集合。我需要保留这些收藏品。因此,我需要一种在不删除集合的情况下删除集合中整个文档的方法。确保使用deleteAll第一个选项如果使用deleteAll(),则无法删除集合和架构。它只删除文档。如果方案中的任何更改不影响新方案。
mongoTemplate.dropCollection("collectionName");
mongoTemplate.createCollection("collectionName");