我在我的“事件”集合文档,这些文档建立与此类似:通过文档内部的文档搜索不良做法?
{
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