使用 `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)));
基于
我正在尝试按 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)));
基于