2012-09-20 134 views
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" 

我想檢索標記有記錄的記錄N *以上...我玩弄了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(); 
+0

的盡頭有固定的問題。我沒有清理我的數據庫。清理它並開始新鮮 - 現在開心。 Query.In返回 –

回答

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(); 
相關問題