Javascript MongoDB多对多关系

Javascript MongoDB多对多关系,javascript,sql,database,mongodb,Javascript,Sql,Database,Mongodb,我刚接触mongodb(来自SQL),想知道如何处理多对多关系。假设我有一个模式用户和一个模式事件。用户模式将有一个名为“事件”的字段,该字段是他们正在参加的事件的列表。事件架构将有一个字段“users”,其中包含参与事件的用户。 我被告知,标准方法是执行以下操作: var UserSchema= new Schema({ id: ObjectId, events: [ {type : mongoose.Schema.ObjectId, ref : 'Event'} ] });

我刚接触mongodb(来自SQL),想知道如何处理多对多关系。假设我有一个模式用户和一个模式事件。用户模式将有一个名为“事件”的字段,该字段是他们正在参加的事件的列表。事件架构将有一个字段“users”,其中包含参与事件的用户。 我被告知,标准方法是执行以下操作:

var UserSchema= new Schema({
    id: ObjectId,
    events: [ {type : mongoose.Schema.ObjectId, ref : 'Event'} ]
});

var EventSchema= new Schema({
    id: ObjectId,
    users: [ {type : mongoose.Schema.ObjectId, ref : 'User'} ]
});

但是,如果我想从事件中删除用户,该怎么办?我必须修改这两个模式,而在标准SQL中,我可以有一个单独的模式,名为UserEvents,其中包含一个用于用户ID和事件ID的字段。这样做的最佳实践是什么?

是的,您需要同时修改这两个模式。这是noSQL的一个弱点,你没有关系,你必须修改两个模式。一种常见的方法是使用一个可以在上找到的示例