简体   繁体   English

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

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

i am trying to find documents in collection by ids. 我试图通过ID找到收集的文件。 Most of the suggested answers use C# class that matches with the document. 大多数建议的答案都使用与文档匹配的C#类。 something like here 这里的东西

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

i don't have corresponding C# class, so i am using BsonDocument 我没有相应的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;
}

I am not sure how do i set filter with in operator? 我不知道如何in运算符中设置过滤器?

You may try this filter: 你可以尝试这个过滤器:

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

Based on this answer 基于这个答案

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM