#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, и я импортирую их в контроллер групп. Мне нужна ссылка, чтобы быть контактами: электронная почта: [Контакт]