2013-01-22 2 views
20

mongodb에서 컬렉션 당 둘 이상의 스키마를 사용하려면 어떻게 사용합니까?
내가 그것을 실행하려고하면 그것은 나에게 오류를 제공합니다

오류 :이 같은 뭔가를 할 수mongodb에서 컬렉션 당 둘 이상의 스키마 사용

몽구스에서
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 
    }; 

답변

40

OverwriteModelError: Cannot overwrite allUsers model once compiled.
OverwriteModelError: Cannot overwrite checkInOut model once compiled.


Heres는 내 schema.js :

var users = mongoose.model('User', loginUserSchema, 'users'); 
var registerUser = mongoose.model('Registered', registerUserSchema, 'users'); 

이 두 스키마는 '사용자'컬렉션에 저장됩니다.

자세한 내용은 설명서를 참조하십시오 : http://mongoosejs.com/docs/api.html#index_Mongoose-model 또는 gist 도움이 될 수 있습니다.

+1

나는 그 (것)들에게 동일한 이름을주고 있었다. 그리고 didnt는 수집의 이름이 제 3의 매개 변수에서 기대된다라는 것을 알고있다. –

+0

어떤 제안이 두 스키마의 개체를 검색하는 방법을 수행하는 방법? 예를 들어 사용자와 등록 된 사용자를 모두 찾고 날짜별로 정렬하려면 쿼리 만 사용하십시오. – Leg0

+1

Leg0, jQuery와이 작업은 어떤 관계가 있습니까? – bluehallu