2011-08-29 80 views
3

我有下面的類如何查詢字典上的MongoDB

public class Group { 
    [BsonId] 
    public ObjectID _id {get; set;} 
    [BsonElement("Me")] 
    public Members Dictionary<ObjectId, UserGroupProperties> Members {get; set;} 
} 

如何查詢議員的財產? Memebres.ObjectId == objectid在哪裏? 謝謝!

回答

2

MongoDB有一個「dot notation」用於接觸到子對象或數組。

通常情況下,查詢將類似於以下內容:

Query.EQ("Me._id", objectid) 

而且會發現這個結構的數據:

{ 
    _id: ObjectId(), 
    me: [ 
     { _id: ObjectId(): { UserGroupProperties } }, 
     { _id: ObjectId(): { other UserGroupProperties } } 
     ] 
} 

但是,它看起來像你的數據結構稍有不同。你的數據如下?

{ 
    _id: ObjectId(), 
    me: { 
     ObjectId(): { UserGroupProperties }, 
     ObjectId(): { other UserGroupProperties } 
     } 
} 

如果是這樣,那麼你正在尋找「me.objectid」的存在。這是不同的。

這裏要注意的一點是,MongoDB將返回整個匹配的文檔。所以如果你正在尋找一個UserGroupProperties你的查詢將返回整個Group

+0

感謝。我已經將它發佈到MongoDB用戶組中。將會發展它。 http://groups.google.com/group/mongodb-user/browse_frm/thread/f21dba79a93643af – elranu