Delete Documents删除文档

选择语言

On this page本页内容


Use the Select your language drop-down menu in the upper-right to set the language of the following examples.使用右上角的“选择语言”下拉菜单设置以下示例的语言。


This page uses the following mongosh methods:本页面使用以下mongosh方法:

The examples on this page use the inventory collection. 本页上的示例使用inventory集合。To populate the inventory collection, run the following:要填充inventory集合,请运行以下操作:

This page uses MongoDB Compass to delete the documents.此页面使用MongoDB Compass删除文档。

Populate the inventory collection with the following documents:使用以下文档填充inventory集合:

This page uses the following MongoDB C# Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following Java Reactive Streams Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following Java Synchronous Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following Motor driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following MongoDB Node.js Driver methods:此页面使用以下MongoDB Node.js驱动程序方法:

The examples on this page use the inventory collection. 本页上的示例使用inventory集合。To populate the inventory collection, run the following:要填充inventory集合,请运行以下操作:

This page uses the following MongoDB Perl Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following MongoDB PHP Library methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following PyMongo Python driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following MongoDB Ruby Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

This page uses the following MongoDB Scala Driver methods:

The examples on this page use the inventory collection. To populate the inventory collection, run the following:

db.inventory.insertMany( [
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
] );

You can run the operation in the web shell below:您可以在下面的web shell中运行该操作:

[
    { "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
    { "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "P" },
    { "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
    { "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
    { "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
]

For instructions on inserting documents in MongoDB Compass, see Insert Documents.有关在MongoDB Compass中插入文档的说明,请参阅插入文档

Note注意

For complete reference on inserting documents in MongoDB Compass, see the Compass documentation.有关在MongoDB Compass中插入文档的完整参考,请参阅Compass文档

var documents = new[]
{
    new BsonDocument
    {
        { "item", "journal" },
        { "qty", 25 },
        { "size", new BsonDocument { { "h", 14 }, { "w", 21 }, { "uom", "cm" } } },
        { "status", "A" }
    },
    new BsonDocument
    {
        { "item", "notebook" },
        { "qty", 50 },
        { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } },
        { "status", "P" }
    },
    new BsonDocument
    {
        { "item", "paper" },
        { "qty", 100 },
        { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } },
        { "status", "D" }
    },
    new BsonDocument
    {
        { "item", "planner" },
        { "qty", 75 },
        { "size", new BsonDocument { { "h", 22.85 }, { "w", 30 }, { "uom", "cm" } } },
        { "status", "D" }
    },
    new BsonDocument
    {
        { "item", "postcard" },
        { "qty", 45 },
        { "size", new BsonDocument { { "h", 10 }, { "w", 15.25 }, { "uom", "cm" } } },
        { "status", "A" }
    }
};
collection.InsertMany(documents);
Publisher<Success> insertManyPublisher = collection.insertMany(asList(
        Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"),
        Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'A' }"),
        Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"),
        Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"),
        Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }")
));
collection.insertMany(asList(
        Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"),
        Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'A' }"),
        Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"),
        Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"),
        Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }")
));
await db.inventory.insert_many(
    [
        {
            "item": "journal",
            "qty": 25,
            "size": {"h": 14, "w": 21, "uom": "cm"},
            "status": "A",
        },
        {
            "item": "notebook",
            "qty": 50,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "P",
        },
        {
            "item": "paper",
            "qty": 100,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "D",
        },
        {
            "item": "planner",
            "qty": 75,
            "size": {"h": 22.85, "w": 30, "uom": "cm"},
            "status": "D",
        },
        {
            "item": "postcard",
            "qty": 45,
            "size": {"h": 10, "w": 15.25, "uom": "cm"},
            "status": "A",
        },
    ]
)
await db.collection('inventory').insertMany([
  {
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
  },
  {
    item: 'notebook',
    qty: 50,
    size: { h: 8.5, w: 11, uom: 'in' },
    status: 'P'
  },
  {
    item: 'paper',
    qty: 100,
    size: { h: 8.5, w: 11, uom: 'in' },
    status: 'D'
  },
  {
    item: 'planner',
    qty: 75,
    size: { h: 22.85, w: 30, uom: 'cm' },
    status: 'D'
  },
  {
    item: 'postcard',
    qty: 45,
    size: { h: 10, w: 15.25, uom: 'cm' },
    status: 'A'
  }
]);
$db->coll("inventory")->insert_many(
    [
        {
            item   => "journal",
            qty    => 25,
            size   => { h => 14, w => 21, uom => "cm" },
            status => "A"
        },
        {
            item   => "notebook",
            qty    => 50,
            size   => { h => 8.5, w => 11, uom => "in" },
            status => "P"
        },
        {
            item   => "paper",
            qty    => 100,
            size   => { h => 8.5, w => 11, uom => "in" },
            status => "D"
        },
        {
            item   => "planner",
            qty    => 75,
            size   => { h => 22.85, w => 30, uom => "cm" },
            status => "D"
        },
        {
            item   => "postcard",
            qty    => 45,
            size   => { h => 10, w => 15.25, uom => "cm" },
            status => "A"
        }
    ]
);
$insertManyResult = $db->inventory->insertMany([
    [
        'item' => 'journal',
        'qty' => 25,
        'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'],
        'status' => 'A',
    ],
    [
        'item' => 'notebook',
        'qty' => 50,
        'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'],
        'status' => 'P',
    ],
    [
        'item' => 'paper',
        'qty' => 100,
        'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'],
        'status' => 'D',
    ],
    [
        'item' => 'planner',
        'qty' => 75,
        'size' => ['h' => 22.85, 'w' => 30, 'uom' => 'cm'],
        'status' => 'D',
    ],
    [
        'item' => 'postcard',
        'qty' => 45,
        'size' => ['h' => 10, 'w' => 15.25, 'uom' => 'cm'],
        'status' => 'A',
    ],
]);
db.inventory.insert_many(
    [
        {
            "item": "journal",
            "qty": 25,
            "size": {"h": 14, "w": 21, "uom": "cm"},
            "status": "A",
        },
        {
            "item": "notebook",
            "qty": 50,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "P",
        },
        {
            "item": "paper",
            "qty": 100,
            "size": {"h": 8.5, "w": 11, "uom": "in"},
            "status": "D",
        },
        {
            "item": "planner",
            "qty": 75,
            "size": {"h": 22.85, "w": 30, "uom": "cm"},
            "status": "D",
        },
        {
            "item": "postcard",
            "qty": 45,
            "size": {"h": 10, "w": 15.25, "uom": "cm"},
            "status": "A",
        },
    ]
)
client[:inventory].insert_many([
                                { item: 'journal',
                                  qty: 25,
                                  size: { h: 14, w: 21, uom: 'cm' },
                                  status: 'A' },
                                { item: 'notebook',
                                  qty: 50,
                                  size: { h: 8.5, w: 11, uom: 'in' },
                                  status: 'P' },
                                { item: 'paper',
                                  qty: 100,
                                  size: { h: 8.5, w: 11, uom: 'in' },
                                  status: 'D' },
                                { item: 'planner',
                                  qty: 75,
                                  size: { h: 22.85, w: 30, uom: 'cm' },
                                  status: 'D' },
                                { item: 'postcard',
                                  qty: 45,
                                  size: { h: 10, w: 15.25, uom: 'cm' },
                                  status: 'A' },
                               ])
collection.insertMany(Seq(
  Document("""{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }"""),
  Document("""{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" }"""),
  Document("""{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }"""),
  Document("""{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }"""),
  Document("""{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }""")
)).execute()

Delete All Documents删除所有文档

To delete all documents from a collection, pass an empty filter document {} to the db.collection.deleteMany() method.若要删除集合中的所有文档,请将空filter文档{}传递给db.collection.deleteMany()方法。

The following example deletes all documents from the inventory collection:以下示例从inventory集合中删除所有文档:

To delete all documents from a collection, pass an empty filter Builders<BsonDocument>.Filter.Empty to the IMongoCollection.DeleteMany() method.要从集合中删除所有文档,请将空筛选器Builders<BsonDocument>.Filter.Empty传递给IMongoCollection.DeleteMany()方法。

The following example deletes all documents from the inventory collection:以下示例从inventory集合中删除所有文档:

To delete all documents from a collection, pass an empty org.bson.Document object as the filter to the com.mongodb.reactivestreams.client.MongoCollection.deleteMany method.

The following example deletes all documents from the inventory collection:

To delete all documents from a collection, pass an empty org.bson.Document object as the filter to the com.mongodb.client.MongoCollection.deleteMany method.

The following example deletes all documents from the inventory collection:

To delete all documents from a collection, pass an empty filter document {} to the motor.motor_asyncio.AsyncIOMotorCollection.delete_many method.

The following example deletes all documents from the inventory collection:

To delete all documents from a collection, pass an empty filter document {} to the Collection.deleteMany() method.若要删除集合中的所有文档,请将空筛选器文档{}传递给Collection.deleteMany()方法。

The following example deletes all documents from the inventory collection:以下示例从inventory集合中删除所有文档:

To delete all documents from a collection, pass an empty filter document {} to the MongoDB::Collection::delete_many() method.

The following example deletes all documents from the inventory collection:以下示例从inventory集合中删除所有文档:

To delete all documents from a collection, pass an empty filter document [] to the MongoDB\\Collection::deleteMany() method.

The following example deletes all documents from the inventory collection:以下示例从inventory集合中删除所有文档:

To delete all documents from a collection, pass an empty filter document {} to the pymongo.collection.Collection.delete_many method.

The following example deletes all documents from the inventory collection:

To delete all documents from a collection, pass an empty filter document {} to the Mongo::Collection#delete_many() method.

The following example deletes all documents from the inventory collection:

To delete all documents from a collection, pass an empty filter Document() to the collection.deleteMany() method.

The following example deletes all documents from the inventory collection:

db.inventory.deleteMany({})
var filter = Builders<BsonDocument>.Filter.Empty;
var result = collection.DeleteMany(filter);
Publisher<DeleteResult> deleteManyPublisher = collection.deleteMany(new Document());
collection.deleteMany(new Document());
await db.inventory.delete_many({})
await db.collection('inventory').deleteMany({});
$db->coll("inventory")->delete_many( {} );
$deleteResult = $db->inventory->deleteMany([]);
db.inventory.delete_many({})
client[:inventory].delete_many({})
collection.deleteMany(Document()).execute()

The method returns a document with the status of the operation. 该方法返回带有操作状态的文档。For more information and examples, see deleteMany().有关更多信息和示例,请参阅deleteMany()

Upon successful execution, the IMongoCollection.DeleteMany() method returns an instance of DeleteResult whose DeletedCount property contains the number of documents that matched the filter.

com.mongodb.reactivestreams.client.MongoCollection.deleteMany returns a Publisher object of type com.mongodb.client.result.DeleteResult if successful. Returns an instance of com.mongodb.MongoException if unsuccessful.

The com.mongodb.client.MongoCollection.deleteMany method returns an instance of com.mongodb.client.result.DeleteResult with the status of the operation.

The delete_many coroutine asynchronously returns an instance of pymongo.results.DeleteResult with the status of the operation.

deleteMany() returns a promise that provides a result. 返回提供结果的promise。The result.deletedCount property contains the number of documents that matched the filter.result.deletedCount属性包含与筛选器匹配的文档数。

Upon successful execution, the delete_many() method returns an instance of MongoDB::DeleteResult whose deleted_count attribute contains the number of documents that matched the filter.

Upon successful execution, the deleteMany() method returns an instance of MongoDB\\DeleteResult whose getDeletedCount() method returns the number of documents that matched the filter.

The delete_many method returns an instance of pymongo.results.DeleteResult with the status of the operation.

Upon successful execution, the delete_many() method returns an instance of Mongo::Operation::Result, whose deleted_count attribute contains the number of documents that matched the filter.

Upon successful execution, the collection.deleteMany() method returns an Observable with a single element with a DeleteResult type parameter or with an com.mongodb.MongoException.

Delete All Documents that Match a Condition删除符合条件的所有文档

You can specify criteria, or filters, that identify the documents to delete. 您可以指定标识要删除的文档的条件或筛选器。The filters use the same syntax as read operations.筛选器使用与读取操作相同的语法。

To specify equality conditions, use <field>:<value> expressions in the query filter document:要指定相等条件,请在查询筛选器文档中使用<field>:<value>表达式:

{ <field1>: <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:查询筛选器文档可以使用查询运算符以以下形式指定条件:

{ <field1>: { <operator1>: <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the deleteMany() method.要删除符合删除条件的所有文档,请将filter参数传递给deleteMany()方法。

The following example removes all documents from the inventory collection where the status field equals "A":以下示例从inventory集合中删除status字段等于"A"的所有文档:

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, construct a filter using the Eq method:

Builders<BsonDocument>.Filter.Eq(<field>, <value>);

In addition to the equality filter, MongoDB provides various query operators to specify filter conditions. Use the FilterDefinitionBuilder methods to create a filter document. For Example:例如:

var builder = Builders<BsonDocument>.Filter;
builder.And(builder.Eq(<field1>, <value1>), builder.Lt(<field2>, <value2>));

To delete all documents that match a deletion criteria, pass a filter parameter to the IMongoCollection.DeleteMany() method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use the com.mongodb.client.model.Filters.eq method to create the query filter document:

and(eq( <field1>, <value1>), eq( <field2>, <value2>) ...)

In addition to the equality condition, MongoDB provides various query operators to specify filter conditions. Use the com.mongodb.client.model.Filters helper methods to facilitate the creation of filter documents. For Example:例如:

and(gte(<field1>, <value1>), lt(<field2>, <value2>), eq(<field3>, <value3>))

To delete all documents that match a deletion criteria, pass a filter parameter to the com.mongodb.reactivestreams.client.MongoCollection.deleteMany method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use the com.mongodb.client.model.Filters.eq_ method to create the query filter document:

and(eq( <field1>, <value1>), eq( <field2>, <value2>) ...)

In addition to the equality condition, MongoDB provides various query operators to specify filter conditions. Use the com.mongodb.client.model.Filters helper methods to facilitate the creation of filter documents. For Example:例如:

and(gte(<field1>, <value1>), lt(<field2>, <value2>), eq(<field3>, <value3>))

To delete all documents that match a deletion criteria, pass a filter parameter to the com.mongodb.client.MongoCollection.deleteMany method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use <field>:<value> expressions in the query filter document:

{ <field1>: <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:

{ <field1>: { <operator1>: <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the delete_many method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. 您可以指定标识要删除的文档的条件或筛选器。The filters use the same syntax as read operations.筛选器使用与读取操作相同的语法。

To specify equality conditions, use <field>:<value> expressions in the query filter document:要指定相等条件,请在查询筛选器文档中使用<field>:<value>表达式:

{ <field1>: <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:查询筛选器文档可以使用查询运算符以以下形式指定条件:

{ <field1>: { <operator1>: <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the deleteMany() method.要删除符合删除条件的所有文档,请将filter参数传递给deleteMany()方法。

The following example removes all documents from the inventory collection where the status field equals "A":以下示例从inventory集合中删除status字段等于"A"的所有文档:

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use <field> => <value> expressions in the query filter document:

{ <field1> => <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:

{ <field1> => { <operator1> => <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the delete_many() method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use <field> => <value> expressions in the query filter document:

[ <field1> => <value1>, ... ]

A query filter document can use the query operators to specify conditions in the following form:

[ <field1> => [ <operator1> => <value1> ], ... ]

To delete all documents that match a deletion criteria, pass a filter parameter to the deleteMany() method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use <field>:<value> expressions in the query filter document:

{ <field1>: <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:

{ <field1>: { <operator1>: <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the delete_many method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use <field> => <value> expressions in the query filter document:

{ <field1> => <value1>, ... }

A query filter document can use the query operators to specify conditions in the following form:

{ <field1> => { <operator1> => <value1> }, ... }

To delete all documents that match a deletion criteria, pass a filter parameter to the delete_many() method.

The following example removes all documents from the inventory collection where the status field equals "A":

You can specify criteria, or filters, that identify the documents to delete. The filters use the same syntax as read operations.

To specify equality conditions, use the com.mongodb.client.model.Filters.eq_ method to create the query filter document:

and(equal(<field1>, <value1>), equal(<field2>, <value2>) ...)

In addition to the equality condition, MongoDB provides various query operators to specify filter conditions. Use the com.mongodb.client.model.Filters_ helper methods to facilitate the creation of filter documents. For Example:例如:

and(gte(<field1>, <value1>), lt(<field2>, <value2>), equal(<field3>, <value3>))

To delete all documents that match a deletion criteria, pass a filter parameter to the deleteMany() method.

The following example removes all documents from the inventory collection where the status field equals "A":

db.inventory.deleteMany({ status : "A" })
var filter = Builders<BsonDocument>.Filter.Eq("status", "A");
var result = collection.DeleteMany(filter);
deleteManyPublisher = collection.deleteMany(eq("status", "A"));
collection.deleteMany(eq("status", "A"));
await db.inventory.delete_many({"status": "A"})
await db.collection('inventory').deleteMany({ status: 'A' });
$db->coll("inventory")->delete_many( { status => "A" } );
$deleteResult = $db->inventory->deleteMany(['status' => 'A']);
db.inventory.delete_many({"status": "A"})
client[:inventory].delete_many(status: 'A')
collection.deleteMany(equal("status", "A")).execute()

The method returns a document with the status of the operation. 该方法返回带有操作状态的文档。For more information and examples, see deleteMany().有关更多信息和示例,请参阅deleteMany()

Upon successful execution, the IMongoCollection.DeleteMany() method returns an instance of DeleteResult whose DeletedCount property contains the number of documents that matched the filter.

com.mongodb.reactivestreams.client.MongoCollection.deleteMany returns a Publisher object of type com.mongodb.client.result.DeleteResult if successful. Returns an instance of com.mongodb.MongoException if unsuccessful.

The com.mongodb.client.MongoCollection.deleteMany method returns an instance of com.mongodb.client.result.DeleteResult with the status of the operation.

The delete_many coroutine asynchronously returns an instance of pymongo.results.DeleteResult with the status of the operation.

deleteMany() returns a promise that provides a result. 返回提供结果的promise。The result.deletedCount property contains the number of documents that matched the filter.result.deletedCount属性包含与筛选器匹配的文档数。

Upon successful execution, the delete_many() method returns an instance of MongoDB::DeleteResult whose deleted_count attribute contains the number of documents that matched the filter.

Upon successful execution, the deleteMany() method returns an instance of MongoDB\\DeleteResult whose getDeletedCount() method returns the number of documents that matched the filter.

The delete_many method returns an instance of pymongo.results.DeleteResult with the status of the operation.

Upon successful execution, the delete_many() method returns an instance of Mongo::Operation::Result, whose deleted_count attribute contains the number of documents that matched the filter.

Upon successful execution, the collection.deleteMany() method returns an Observable with a single element with a DeleteResult type parameter or with an com.mongodb.MongoException.

Delete Only One Document that Matches a Condition仅删除一个符合条件的文档

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the db.collection.deleteOne() method.要删除最多一个与指定筛选器匹配的文档(即使多个文档可能与指定筛选器相匹配),请使用db.collection.deleteOne()方法。

The following example deletes the first document where status is "D":以下示例删除status"D"的第一个文档:

MongoDB Compass provides a simple way to delete a document from a collection. MongoDB Compass提供了一种从集合中删除文档的简单方法。The following example shows how to delete the document with item equal to paper from the inventory collection:以下示例显示如何从inventory集合中删除item等于paper的文档:

Note注意

In this example we are using the Compass Table View to delete the document. 在本例中,我们使用Compass表视图删除文档。The deletion process using the Compass List View follows a very similar approach.使用Compass列表视图的删除过程遵循非常相似的方法。

For more information on the differences between Table View and List View in Compass, refer to the Compass documentation.有关Compass中表视图和列表视图之间差异的更多信息,请参阅Compass文档

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the IMongoCollection.DeleteOne() method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the com.mongodb.reactivestreams.client.MongoCollection.deleteMany method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the com.mongodb.client.MongoCollection.deleteOne method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the motor.motor_asyncio.AsyncIOMotorCollection.delete_one method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the Collection.deleteOne() method.要删除最多一个与指定筛选器匹配的文档(即使多个文档可能与指定筛选器相匹配),请使用Collection.deleteOne()方法。

The following example deletes the first document where status is "D":以下示例删除status"D"第一个文档:

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the MongoDB::Collection::delete_one() method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the MongoDB\\Collection::deleteOne() method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the pymongo.collection.Collection.delete_one method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the Mongo::Collection#delete_one() method.

The following example deletes the first document where status is "D":

To delete at most a single document that matches a specified filter (even though multiple documents may match the specified filter) use the collection.deleteOne() method.

The following example deletes the first document where status is "D":

db.inventory.deleteOne( { status: "D" } )
  1. Click the Table button in the top navigation to access the Table View:单击顶部导航中的“表格”按钮以访问“表格”视图

    Compass Table View button
    click to enlarge
  2. Use the Compass query bar to locate the target document.使用Compass“查询栏”定位目标文档。

    Copy the following filter document into the query bar and click Find:将以下筛选文档复制到查询栏中,然后单击“查找”:

    { item: "paper" }
    Compass Find button
    click to enlarge
  3. Hover over the document and click the trash icon which appears on the right-hand side:将鼠标悬停在文档上,然后单击右侧显示的回收站图标:

    Compass Delete Document button
    click to enlarge

    After clicking the delete button, the document is flagged for deletion and Compass asks for confirmation that you want to remove the document:单击删除按钮后,文档将被标记为删除,Compass会要求您确认是否要删除该文档:

    Compass Confirm Deletion button
    click to enlarge
  4. Click Delete to confirm. Compass deletes the document from the collection.单击“删除”确认。Compass从集合中删除文档。

var filter = Builders<BsonDocument>.Filter.Eq("status", "D");
var result = collection.DeleteOne(filter);
Publisher<DeleteResult> deleteOnePublisher = collection.deleteOne(eq("status", "D"));
collection.deleteOne(eq("status", "D"));
await db.inventory.delete_one({"status": "D"})
await db.collection('inventory').deleteOne({ status: 'D' });
$db->coll("inventory")->delete_one( { status => "D" } );
$deleteResult = $db->inventory->deleteOne(['status' => 'D']);
db.inventory.delete_one({"status": "D"})
client[:inventory].delete_one(status: 'D')
collection.deleteOne(equal("status", "D")).execute()

Delete Behavior删除行为

Indexes索引

Delete operations do not drop indexes, even if deleting all documents from a collection.即使从集合中删除所有文档,删除操作也不会删除索引。

Atomicity原子性

All write operations in MongoDB are atomic on the level of a single document. MongoDB中的所有写操作都是单个文档级别的原子操作。For more information on MongoDB and atomicity, see Atomicity and Transactions.有关MongoDB和原子性的更多信息,请参阅原子性和事务

Write Acknowledgement写入确认

With write concerns, you can specify the level of acknowledgement requested from MongoDB for write operations. 对于写操作,您可以指定从MongoDB请求的写操作确认级别。For details, see Write Concern.有关详细信息,请参阅写问题

←  Update MethodsDelete Methods →