该页使用了以下MongoDB C# Driver 方法:
运行以下代码,填充 inventory
集合 :
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);
为 IMongoCollection.DeleteMany()方法提供一个empty filter Builders
var filter = Builders.Filter.Empty;
var result = collection.DeleteMany(filter);
Upon successful execution, the method returns an instance of whose DeletedCount
property contains the number of documents that matched the filter.
在成功执行后,IMongoCollection.DeleteMany() 方法返回一个DeleteResult实例,DeletedCount
属性包含匹配筛选器的匹配的文档数量。
你可以指定规则或筛选器,来标识要删除的文档,筛选器语句与读操作相同。使用Eq 方法构建筛选器,用来指
定相等条件:
Builders.Filter.Eq(, );
除了相同筛选器,MangoDB还提供各种查询运算符来指定筛选条件。使用FilterDefinitionBuilder方法创建筛选器文档。例如:
var builder = Builders.Filter;
builder.And(builder.Eq(, ), builder.Lt(, ));
传入一个filter 参数到IMongoCollection.DeleteMany() 方法,匹配删除规则来删除所有文档。
以下代码从inventory 集合中通过删除全部文档,匹配条件是 status 字段值等于“A”:
var filter = Builders.Filter.Eq("status", "A");
var result = collection.DeleteMany(filter);
当执行成功时,IMongoCollection.DeleteMany()方法会返回一个 DeleteResult实例,它的DeletedCount
属性包含筛选器匹配的文档数量:
删除筛选器匹配的单一文档(即然可能匹配多个文档),可以使用IMongoCollection.DeleteOne().
以下示例为删除status等于“D”的第一个文档:
var filter = Builders.Filter.Eq("status", "D");
var result = collection.DeleteOne(filter);
删除操作不会删除索引,即使用删除集合中全部文档;
所有的单文档写入操作都是原子性的,更多信息,查看 Atomicity and Transactions.
关于写入关注点,你可以指定MongoDB写操作的确认级别,更多细节,查看Write Concern.
MongoDB提示以下删除集合中文档的方法:
db.collection.deleteOne() |
删除集合中单一文档,即然查询条件匹配多个文档 New in version 3.2. |
db.collection.deleteMany() |
删除符合条件的文档. New in version 3.2. |
db.collection.remove() |
删除符合条件的单一文档. |
以下方法可以删除集合中的文档:
db.collection.findOneAndDelete()
.
findOneAndDelete() 提供了排序选项.该选项允许删除排序后的首个文档
db.collection.findAndModify()
.
db.collection.findAndModify()
提供了排序选项,该选项允许删除排序后的首个文档
db.collection.bulkWrite()
.
关于更多的信息和示例,请查看个别的引用页;