找到所有匹配的

时间:2012-09-20 15:46:32

标签: c# .net mongodb

我在使用MongoDb时遇到了一些麻烦。

假设我有一个MyObject集合,其中:

MyObject
{
    public Guid Guid { get;set; }
    public List<BsonValue> Identifiers { get;set; }
    public List<string> Tags { get;set; }
}

现在我插入一组标识符设置为:

的对象
new List<BsonValue>{"A"} *
new List<BsonValue>{"D"}
new List<BsonValue>{"A", "B"} *
new List<BsonValue>{"C", "D"}
new List<BsonValue>{"A", "B", "C"} *
new List<BsonValue>{"A", "B", "C", "D"}

现在我来了一个包含以下值的测试用例:

"A", "B", "C"

我想检索上面标有*的记录...我玩过Query.In但是我收到错误无法从BsonType ObjectId反序列化Guid

一点点额外的清晰度:

我已经设法通过代码实现了我想要的东西。但是,如果有人能指出我更方便的方法,我会很高兴。但是这样做。

var query = new List<BsonValue>{"A","B","C"};

var results = collection.FindAs<MyObject>(Query.In("Identifiers", query));
var valid = results.Where(r => !r.Identifiers.Except(a).Any()).ToList();

1 个答案:

答案 0 :(得分:0)

var query = new List<BsonValue>{"A","B","C"};

var results = collection.FindAs<MyObject>(Query.In("Identifiers", query));
var valid = results.Where(r => !r.Identifiers.Except(a).Any()).ToList();