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