使用 `in` 运算符从 ID 列表中查找所有 MongoDB 文档

Find all MongoDB documents from a list of ids using `in` operator

我正在尝试按 ID 查找集合中的文档。大多数建议的答案使用与文档匹配的 C# class。像

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

我没有相应的 C# class,所以我正在使用 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 运算符设置过滤器?

您可以试试这个过滤器:

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

基于