mongo C#按ID删除多个记录

Nov*_*ice 4 c# database mongodb nosql

我试图在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);            
    }
Run Code Online (Sandbox Code Playgroud)

它没有给出错误,但也没有删除任何记录。任何人有帮助吗?

chr*_*dam 5

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

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