如何使用mongodb中的强类型查询构建器访问嵌套数组属性

时间:2013-03-05 16:29:31

标签: c# mongodb mongodb-.net-driver

在c#中使用mongodb的强类型查询构建器时,尝试弄清楚如何访问嵌套数组属性。假设我有以下课程:

public class V {
    public Guid _id { get; set; }
    public List<S> S { get; set; }
}

public class S {
    public Guid I { get; set;}
    /* other fields */
}

V是文档类型。我想构建一个这样的查询:

var id = Guid.NewGuid();
var query = Query<V>.EQ(v => v.S.I, id);

然而,由于V上的S属性是List,因此无法编译。我希望看到的mongo查询是这样的(实际的guid语法不正确,但左侧是重要的部分:

{ "S.I": "99ebc751-c12a-4873-8c3f-cb510b26a082" }

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你需要像Nuk Nuk在你的问题评论中提到的那样做。或者,您可以使用ElemMatch(docs.mongodb.org/manual/reference/operator/elemMatch),这可能更合适。

如果您对我们如何使用类型语法支持此功能提出建议,请提供一些反馈。出于同样的原因,我们正在努力解决如何支持位置($)更新运算符。