我试图在mongo中创建一个deleteAll方法,在那里我可以一次删除多个记录,为方法提供一个要删除的对象ID列表,如下所示
protected virtual DeleteResult DeleteAll(List<ObjectId> listId, WriteConcern concern = null)
{
return MongoCollection
.DeleteManyAsync(ItemWithListOfId(listId))
.Result;
}
protected FilterDefinition<T> ItemWithListOfId(List<ObjectId> id)
{
return Builders<T>.Filter.Eq("_id", id);
}
它没有给出错误,但也没有删除任何记录.
有人帮忙吗?
解决方法:
您需要一个In
过滤器方法来匹配列表中的id值,而不是Eq过滤器,这是mongodb $in
查询的一个实现
protected FilterDefinition<T> ItemWithListOfId(List<ObjectId> id)
{
return Builders<T>.Filter.In("_id", id);
}