首页 > 解决方案 > 来自文档列表、mongodb、mongo C# 驱动程序的特定数组元素

问题描述

我在检索特定数组元素时遇到问题。
集合包含以下类型的订单记录。

public class Order
{
 public int orderId {get; set;} 
 public Address addr {get; set;}
 public List<Product> products {get; set;}
}

public class Address 
{
  public string lineOne {get; set; }
  public string city {get; set; }
}

public class Product
{
   public int productid { get; set; }
   public string name { get; set; }
   public string description {get; set;}
}

我正在尝试使用地址和订单号查找一个产品 ID 详细信息。但我得到了所有的产品

var orderBuilder = Builders<Order>.Filter;
var productBuiler =  Builders<Product>.Filter;

var query = orderBuilder.ElemMatch(c=>products, productBuiler.Eq(c=>c.productId, 123));
var result = await _orderCollection.Find(query).FirstOrDefaultAsync();

通过上面的查询,我得到了整个订单,而不是我只需要匹配产品和地址的详细信息。

标签: c#arraysmongodbdriver

解决方案


推荐阅读