mongo c#通过id删除多个记录

本文关键字:记录 删除 id 通过 mongo | 更新日期: 2023-09-27 18:13:01

我试图在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);            
    }

没有错误,但也没有删除任何记录。有人能帮忙吗?

mongo c#通过id删除多个记录

代替Eq过滤器,您需要一个 In 过滤器方法来匹配列表中的id值,这是mongodb $in 查询的实现

protected FilterDefinition<T> ItemWithListOfId(List<ObjectId> id)
{
    return Builders<T>.Filter.In("_id", id);            
}