C# 从属性组合获取所有文档
这可能很简单,但我很难弄明白: 我有一个C# 从属性组合获取所有文档,c#,.net,mongodb,mongodb-query,mongodb-.net-driver,C#,.net,Mongodb,Mongodb Query,Mongodb .net Driver,这可能很简单,但我很难弄明白: 我有一个列表,其中包含我需要搜索的产品列表,我希望在一个请求中获得该列表中表示的所有产品的所有文档 Item1是产品的SKU,但由于可能存在重复的SKU,我还有Item2,其中包含它应该查找的供应商ID 我的挑战是使用MongoDB C#驱动程序构建查询,以获取数据,有人能帮我吗 我使用的是新的2.3.0驱动程序版本,在这个主题上没有太多现有的帮助 以下是我目前掌握的代码: var collection = _database.GetCollection<S
列表
,其中包含我需要搜索的产品列表,我希望在一个请求中获得该列表中表示的所有产品的所有文档
Item1
是产品的SKU,但由于可能存在重复的SKU,我还有Item2
,其中包含它应该查找的供应商ID
我的挑战是使用MongoDB C#驱动程序构建查询,以获取数据,有人能帮我吗
我使用的是新的2.3.0驱动程序版本,在这个主题上没有太多现有的帮助
以下是我目前掌握的代码:
var collection = _database.GetCollection<StockDoc>("stock");
var result = collection.Find().ToListAsync().Result;
var collection=\u database.GetCollection(“stock”);
var result=collection.Find().ToListAsync().result;
我假设您的StockDoc类为:
public class StockDoc
{
public ObjectId Id { get; set; }
public string SKU { get; set; }
public string SupplierId { get; set;}
}
我将编写一个帮助方法,为列表中的每个元组创建过滤器(它是和过滤器:SKU=Item1&&SupplierId==Item2
):
之后,您可以使用此筛选器获取数据:
collection.Find(filter).ToList()
var p = new List<Tuple<String, String>> {
Tuple.Create("a", "1"),
Tuple.Create("b", "1"),
Tuple.Create("d", "2")};
var filter = Builders<StockDoc>.Filter.Or(p.Select(BuildFilter));
collection.Find(filter).ToList()