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を試してみましたが、エラーが発生しますBsonTypeObjectIdから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();
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 に答える