【问题标题】:Can list of IDs(string) be passed to a delete method for MongoDB?可以将 ID(字符串)列表传递给 MongoDB 的删除方法吗?
【发布时间】:2019-04-09 17:34:43
【问题描述】:

我有一个需要删除的 ID 列表。我正在从数据库中获取我的集合并将其传递给资源。我想从中遍历集合并删除正在传递的 Id 列表。

在我使用过滤器删除记录之前,但我不再需要搜索 Id,因为我现在正在传递 Id 列表。

public Task<DataRetentionOperationResult> 
DeleteIdentifiedDataAsync(List<String> Ids, String Resource, 
CancellationToken cancellationToken = default)
    {
        var collection = _db.GetCollection<BsonDocument>(Resource);

        foreach (var id in Ids)
        {                
            collection.DeleteManyAsync<BsonDocument>(id, cancellationToken);
        }

        throw new NotImplementedException();
    }

我希望删除与传递的 Id 关联的文档。

【问题讨论】:

    标签: c# mongodb asp.net-core collections


    【解决方案1】:

    要删除多个文档,您可以使用$in 运算符基于Ids 构建过滤条件。请记住 awaiting 异步函数,

    var filter = Builders<BsonDocument>.Filter.In(f => f["_id"], Ids);
    await collection.DeleteManyAsync(filter);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多