Используйте несколько схем для коллекции на mongodb
Я хотел использовать более одной схемы для коллекции в mongodb, как ее использовать...?
Это дает мне эту ошибку, когда я пытаюсь запустить ее:
Ошибка:
OverwriteModelError: Невозможно перезаписать модель allUsers
после компиляции.
OverwriteModelError: невозможно скомпилировать модель checkInOut
после компиляции.
Heres my schema.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var checkInInfoSchema= new Schema({
name:String,
loginSerialId:Number
});
var loginUserSchema = new Schema({
sn : { type: Number, unique:true }
,uname: {type:String, unique:true}
,pass:String
});
var registerUserSchema = new Schema({
sn : { type: Number, unique:true }
, name: String //his/her name
,pass:String,
companyKey:{type:String},
uname:{type:String,unique:true}
});
var checkInOutSchema = new Schema({
uname: String
,companyKey:String
,task:String
,inTime:String
,outTime:String
,date:{type:String}
,serialId:{type:Number,unique:true}
,online:Boolean
});
//Different schema for same collection "allUsers"
var allUser=mongoose.model('allUsers',loginUserSchema);
var registerUser=mongoose.model('allUsers',registerUserSchema);
//Different schema for same collection "checkInOut"
var checkInOut=mongoose.model('checkInOut',checkInOutSchema);
var checkInInfo=mongoose.model('checkInOut',checkInInfoSchema);
module.exports={
allUser:allUser,
registerUser:registerUser,
checkInOut:checkInOut,
checkInInfo:checkInInfo
};
Ответы
Ответ 1
В мангусте вы можете сделать что-то вроде этого:
var users = mongoose.model('User', loginUserSchema, 'users');
var registerUser = mongoose.model('Registered', registerUserSchema, 'users');
Эти две схемы будут сохраняться в коллекции пользователей.
Для получения дополнительной информации вы можете обратиться к документации: http://mongoosejs.com/docs/api.html#index_Mongoose-model или вы можете увидеть следующие gist, это может помочь.