删除文档
您可以使用MongoCollection
对象上的 deleteOne()
方法从collection中删除单个文档。 该方法接受与要删除的文档匹配的查询筛选器。 如果不指定筛选器,MongoDB 将匹配collection中的第一个文档。deleteOne()
方法仅删除第一个匹配的文档。
DeleteResult
此方法返回一个实例,其中包含由于该操作而删除的文档数量等信息。
如果删除操作失败,驱动程序会引发异常。 有关特定条件下引发的异常类型的更多信息,请参阅本页底部链接的deleteOne()
的 API 文档。
例子
以下代码片段从sample_mflix
数据库的movies
collection中删除单个文档。该示例使用eq()
过滤器来匹配电影,而title
与文本'The Garbage Pail Kids Movie'
完全匹配。
注意
此示例使用连接 URI 连接到MongoDB实例。 要学习;了解有关连接到MongoDB实例的更多信息,请参阅连接指南。
// Deletes a document from a collection by using the Java driver package usage.examples; import static com.mongodb.client.model.Filters.eq; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.DeleteResult; public class DeleteOne { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); Bson query = eq("title", "The Garbage Pail Kids Movie"); try { // Deletes the first document that has a "title" value of "The Garbage Pail Kids Movie" DeleteResult result = collection.deleteOne(query); System.out.println("Deleted document count: " + result.getDeletedCount()); // Prints a message if any exceptions occur during the operation } catch (MongoException me) { System.err.println("Unable to delete due to an error: " + me); } } } }
运行该示例时,如果您在调用deleteOne()
时传递的查询筛选器与某一文档匹配并将其删除,则应看到如下所示的输出:
Deleted document count: 1
如果查询筛选器与collection中的文档不匹配,则调用deleteOne()
不会删除任何文档并返回以下内容:
Deleted document count: 0
有关此页面上提及的类和方法的更多信息,请参阅以下 API 文档: