mongoose – 如何做许多错综复杂的关系? 具体快速挑战示例请求包括在下面。 谢谢

我知道如何使用节点,angular度,expression等sequelize …但我只是开始学习使用mongoose平均栈的M部分。 问题是我不知道MongoDB在数据库中组织数据的能力。

那些在MongoDB / Mongoose中做过复杂关系的人能够给我看以下几点吗?

我希望看到一个简单,弥补,容易理解的SCHEMA为以下情况。

1)用户有许多朋友(意思是一组朋友,也是用户对象实例)。

2)用户可以参加很多活动(用户将有每个活动的出席状态,即出席或拒绝)。 用户也将具有名称和用户名的属性。

3)事件可以有很多用户(每个用户将有一个考勤状态)。 事件也会有一段时间和一个地方的属性。

这是非常多的。 再一次,如果有人能够为此写出SCHEMA,我将非常感激,正如我想要理解的那样

有很多方法可以实现这一目标,但是完全取决于数据库devise以及如何访问数据。 通常情况下,我很喜欢有一个只有用户和事件引用的集合以及可能需要的额外数据的组和事件。 至于在mongo中存储朋友,您可以存储为用户ID参数数组,或者与组/事件相同的样式。 看看mongoose和模式属性的人口(我也不确定问人们一个挑战问题,显然你必须做的是一个很好的解决scheme)

没有冒犯性,但让其他人写你的架构并不能帮助你理解堆栈的M部分。
我真的build议你去买这本书的MongoDB:权威指南 。

这给你一个很好的洞察Mongo,也有一部分关于embedded或引用文件。 这实际上取决于你如何处理你的数据,以及数据的变化。

简单的mongoose样品:

var UserSchema = new mongoose.Schema({ first_name: { type: String }, last_name: { type: String }, friends: [UserSchema], events : [{ event_id : { type: mongoose.Schema.Types.ObjectId }, status : { type : Number}] }) var EventSchema = new mongoose.Schema({ name : { type: String}, users : [UserSchema] }) 

这是一个真正的基本示例,其中包含一个单一的参考(EventSchema.users / UserSchema.friend)和有点像混合解决schemeUserSchema.events其中包含事件的id和一些基本信息。

在mongoose,你可以使用填充检索相关的文件。

但是我喜欢强调一下,去购买这本书并阅读它,这样你就可以为你的场景做出正确的select!