Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 多对多关系中的其他字段_Node.js_Mongodb_Mongoose_Many To Many - Fatal编程技术网

Node.js 多对多关系中的其他字段

Node.js 多对多关系中的其他字段,node.js,mongodb,mongoose,many-to-many,Node.js,Mongodb,Mongoose,Many To Many,在用户模式中,我需要使用blocked属性定义联系人字段 我的实际定义如下: const UserSchema = new Schema({ id: Schema.Types.ObjectId, // Other fields // ... contacts: [{ type: Schema.Types.ObjectId, ref: 'User' }] } const UserModel = mongoose.model('User', UserSchema

在用户模式中,我需要使用
blocked
属性定义联系人字段

我的实际定义如下:

const UserSchema = new Schema({
  id: Schema.Types.ObjectId,
  // Other fields
  // ...
  contacts: [{
    type: Schema.Types.ObjectId,
    ref: 'User'
  }]
}

const UserModel = mongoose.model('User', UserSchema);

从那里,我无法找到一种可能的方法,在同一引用关系中添加
blocked
字段
contacts
。是否需要创建一个中间集合来将附加字段添加到关系中?

我最终创建了一个联系人集合,该集合同时包含对用户的引用以及我需要的附加字段:

//user.js
const UserSchema = new Schema({
  id: Schema.Types.ObjectId,
  // Other fields
  // ...
  contacts: [{
    type: Schema.Types.ObjectId,
    ref: 'Contact'
  }]
}

const UserModel = mongoose.model('User', UserSchema);

//contact.js
const ContactSchema = new Schema({
  id: Schema.Types.ObjectId,
  contact: {
    type: Schema.Types.ObjectId,
    ref: 'User'
  },
  blocked: {
    type: Boolean,
    required: true
  }
}

const ContactModel = mongoose.model('Contact', ContactSchema);