MongoDB 2 - 没有硬编码名称的查询数组
MongoDB 2 - query array without hardcoding name
我有一个问题实体,其中包含一个名为 AssignedTo 的 Guid 列表。对于一个 ID,我需要在 AssignedTo list/array
中检索该 ID 的所有问题
到目前为止,我已经成功地做到了:
var filter = Builders<Issue>.Filter.Eq("AssignedTo", id.ToString());
return await Collection.Find(filter).ToListAsync();
但我不想在查询中硬核 AssignedTo。 p => p.AssignedTo 不行,我也试过了。
此外,我如何告诉 BsonClassMap 将该列表注册为字符串列表而不是 GUIDS?我知道这个:
x.GetMemberMap(p => p.AssignedBy).SetSerializer(new GuidSerializer(BsonType.String));
但是我如何在列表中做到这一点?
我正在使用最新的 MongoDB C# 驱动程序。 (2.0)
您正在寻找 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());
我有一个问题实体,其中包含一个名为 AssignedTo 的 Guid 列表。对于一个 ID,我需要在 AssignedTo list/array
中检索该 ID 的所有问题到目前为止,我已经成功地做到了:
var filter = Builders<Issue>.Filter.Eq("AssignedTo", id.ToString());
return await Collection.Find(filter).ToListAsync();
但我不想在查询中硬核 AssignedTo。 p => p.AssignedTo 不行,我也试过了。
此外,我如何告诉 BsonClassMap 将该列表注册为字符串列表而不是 GUIDS?我知道这个:
x.GetMemberMap(p => p.AssignedBy).SetSerializer(new GuidSerializer(BsonType.String));
但是我如何在列表中做到这一点?
我正在使用最新的 MongoDB C# 驱动程序。 (2.0)
您正在寻找 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());