我现在面对这个问题很长一段时间了,请注意这是一种模型结构化问题。 我有一个群组集合,用户可以创建一个群组,添加一些详细信息,如姓名,描述,位置等等。此外,用户可以邀请朋友加入他的群组。 考虑到已经注册到我的网络应用程序的朋友,只需获取受邀朋友的_id并将其添加到我的群组文档中就像这样:
{creator: ...,name:"bla bla",desc:"bla bla"... users:[ invitedFriend_id,invitedFriend_id..]
我也正在反复看这个操作,这意味着inviteFriend_id获得了新的价值 对于像这样的组数组(用户文档):
{name:"bla bla",services:{...},groups:{invited:[group_id that invited this user..],owned:[group_id this user have created]}
真正的问题是当用户邀请尚未注册的朋友时,显而易见 问题是我将group_id保存在不存在的用户中。 我想通过检查电子邮件是否还没有被任何用户使用来检查用户是否还没有注册,但我害怕超载数据库,因为在整个用户集合中搜索某个电子邮件似乎非常错误......
答案 0 :(得分:1)
嗯,这就是数据库的用途 - 对吗?这样您就可以有效地搜索整个数据以获得给定值。
假设您正在使用Meteor帐户,此查询将有所帮助:
Meteor.users.findOne({'emails.address': email})
如果有一个给定email
的用户,则会返回该用户。否则它将返回null
。