MongoDB 2 - 没有硬编码名称的查询数组

时间:2015-05-18 09:47:33

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

我有一个Issue实体,其中包含一个名为AssignedTo的Guid列表。对于一个ID,我需要在AssignedTo list / array

中检索具有该ID的所有问题

到目前为止,我已经通过以下方式做到了这一点:

var filter = Builders<Issue>.Filter.Eq("AssignedTo", id.ToString());
return await Collection.Find(filter).ToListAsync();

但我不想在查询中硬核AssignedTo。 p =&gt; p.AssignedTo不起作用,我也试过了。

另外,如何告诉BsonClassMap将该列表注册为字符串列表而不是GUIDS?我知道这件事:

x.GetMemberMap(p => p.AssignedBy).SetSerializer(new GuidSerializer(BsonType.String));

但我如何在名单上这样做?

我正在为C#使用最新的MongoDB驱动程序。 (2.0)

1 个答案:

答案 0 :(得分:2)

您正在寻找AnyEq方法。请参阅此处的文档:http://mongodb.github.io/mongo-csharp-driver/2.0/reference/driver/definitions/#array-operators

var filter = Builders<Issue>.Filter.AnyEq(x => x.AssignedTo, id.ToString());