我在我的「事件」集合文檔,這些文檔建立與此類似:通過文檔內部的文檔搜索不良做法?
{
eventname: "blah",
invitees: [
{
inviteid: 1,
userid: 34234
},
{
inviteid: 2,
userid: 5232
}]
}
如果我想該用戶的所有事件:「34234」被邀請,這將是有效的,通過各搜索invitees
數組在每個事件文件中?好像過度殺人。我知道這對於關係數據庫來說很好,但是這可以在mongodb中完成嗎?
UPDATE:
最後我用這一點,它的工作,但還是不知道這是做一個偉大的方式: _Events.Collection.FindAll().Where(x => x.Invitees.Any(y => y.UserId == userId)).ToList();
謝謝你的迴應中,搜索每個陣列做,我不知道我怎麼會再回到在這種情況下我的結果? 'ensureIndex'是一個無效的方法,我不太明白這將如何適用於我的情況返回事件列表 – anthonypliu 2013-03-13 23:45:21
'ensureIndex()'只創建索引以列出文檔,使用:'db.events。 find({「invitees.userid」:34234})'僅檢索inviteid使用:'db.events.find({「invitees.userid」:34234},{「invitees.inviteid」:1})' – 2013-03-13 23:46:55
ok所以在你創建索引之後,你如何查詢它? – anthonypliu 2013-03-13 23:49:19