【问题标题】:Find all MongoDB documents from a list of ids using `in` operator使用 `in` 运算符从 id 列表中查找所有 MongoDB 文档
【发布时间】:2018-11-14 18:13:07
【问题描述】:

我正在尝试按 id 查找集合中的文档。大多数建议的答案都使用与文档匹配的 C# 类。类似here

var filter = Builders<Product>.Filter
    .In(p => p.Id, productObjectIDs);

我没有对应的C#类,所以我使用BsonDocument

public async Task<IEnumerable<BsonDocument>> GetData(IEnumerable<int> documentIds)
{
    var collection = _mongoDatabase.GetCollection<BsonDocument>("mycollection");

    // how do set filter here
    var filterBuilder = Builders<BsonDocument>.Filter.In<int>("???????", documentIds);

    var projection = Builders<BsonDocument>.Projection
       .Include("_id")
       .Include("status")
       .Include("units");

    var result = await collection.Find(filterBuilder).Project<BsonDocument>(projection).ToListAsync().ConfigureAwait(false);
    return result;
}

我不确定如何使用in 运算符设置过滤器?

【问题讨论】:

    标签: c# mongodb mongodb-query mongodb-.net-driver


    【解决方案1】:

    你可以试试这个过滤器:

    var filter = new BsonDocument("_id", new BsonDocument("$in", new BsonArray(documetIds)));
    

    基于this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      相关资源
      最近更新 更多