выбросить новую ошибку типа(«Неверная конфигурация схемы:»

#node.js #mongodb

Вопрос:

Я пишу вам о следующем, я представляю ошибку, когда могу сделать ссылку между схемами,

Я немного расскажу вам, что я хочу сделать, мне нужно создать группу, в которую я могу вставить контакты или массив контактов, где я получаю ссылку от контроллера, Сейчас … мои схемы следующие, и это выдает мне следующую ошибку

         throw new TypeError('Invalid schema configuration: '  
        ^

TypeError: Invalid schema configuration: `model` is not a valid type within the array `email`.See for a list of valid schema types.
 

Пользователь Modelo

 'use strict'

var mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate-v2');

var Schema = mongoose.Schema;

var ContactSchema = new Schema({
      user :{ type:Schema.ObjectId, ref:'User'},
      email: { type:String, trim:true}
      },{   versionKey:false,
            timestamps:true,      
});

var Contact = mongoose.model('Contact', ContactSchema);

var UserSchema = new Schema({
      name: { type:String,  trim:true, require:true},
      lastname: { type:String,  trim:true,  require:true},
      email:[ { type:String, unique:true, trim:true, require:true}],
      password: { type:String, trim:true, required: [true,'El Password debe ser mas de 6 caracteres']},
      nPhone: { type:String, trim:true, required: [true,'El Numero debe insertar el umero de telefono']},
      photoProfile:{ type:String, default:'Image.png'},
      contacts:[ContactSchema] 
      },{   versionKey:false,
            timestamps:true,      
});


//metodo para Eliminar password
UserSchema.methods.toJSON=function () {
      var obj =this.toObject();
      delete obj.password;
      
      return obj;
};

module.exports = mongoose.model('User', UserSchema);
 

Пользователь моделей

 'use strict'

var mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate-v2');
const  ContactSchema = require('../models/user');

var Schema = mongoose.Schema;

var MessageSchema =  new Schema({

    messageContent:{ type:String },
    //idStatusMessage:{ type:Boolean },
    user :{ type: Schema.ObjectId, ref:'User'},
    urlFile:{ type:String, default:'Image.png'},
},{     versionKey:false,
        timestamps:true, 

});

var Message = mongoose.model('Message' ,MessageSchema);

var GroupsSchema =  new Schema({
    nameChat:{ type:String },
    user :{ type: Schema.ObjectId, ref:'User'}, 
    //email: [{ type:String, unique:true, trim:true, require:true}],
    email:[ContactSchema] , 
    messageContent:{ type:String },
    messages:[MessageSchema] 
},{     versionKey:false,
        timestamps:true,      
});

//cargar grupos
GroupsSchema.plugin(mongoosePaginate);

module.exports  = mongoose.model('Group',  GroupsSchema);
 

Ответ №1:

Попробуйте изменить схему контактов на эту

 var ContactSchema = new Schema({
      user :{ type:Schema.Types.ObjectId, ref:'User'},
      email: { type:String, trim:true}
      },{   versionKey:false,
            timestamps:true,      
});
 

И где вы его импортируете, сделайте это, например, обязательно поместите .schema в конце.

 var UserSchema = require('../Models/User').schema;
 

Комментарии:

1. Привет, друг, я хотел бы иметь возможность сохранить ссылку на контакт, например, передав электронное письмо из схемы контакта в схему группы … пользователь X, я создаю группу Z, и контакты в группе были получены из контактов пользователя схемы X, и я импортирую их в контроллер групп. Мне нужна ссылка, чтобы быть контактами: электронная почта: [Контакт]