0

我在使用 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 但我收到一个错误Cannot deserialize Guid from BsonType ObjectId

一点额外的清晰度:

我已经设法通过代码实现了我想要的。但是,如果有人能指出我更简单的方法,我会很高兴。然而,这将是可行的。

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();
4

1 回答 1

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();
于 2012-09-21T14:31:35.233 回答