首页 > 解决方案 > Mongodb c#ElemMatch 不适用于数组

问题描述

我正在尝试根据子集合的属性获取元素。

     var filter = Builders<User>.Filter.ElemMatch(x => x.BusinessRequestStatuses, x => x.RequestId == requestId);
        var res = await collection.Find(filter).ToListAsync();

“用户”的文档结构如下所示

在此处输入图像描述

BusinessRequestStatuses 是自定义类型的数组

        public List<BusinessRequestStatus> BusinessRequestStatuses { get; set; }

和 BusinessRequestStatus 如下

public class BusinessRequestStatus
{
    public string RequestId { get; set; }
    public RequestStatus Status { get; set; }
}

我正在设置一个正确的 requestId,它确实存在于子集合中(第一个),但我没有得到任何结果(res)。

在此处输入图像描述

标签: mongodblinqmongodb-.net-drivermongodb-csharp-2.0

解决方案


推荐阅读