2013-01-22 46 views
20

मैं MongoDB में संग्रह प्रति एक से अधिक स्कीमा उपयोग करना चाहता था पर संग्रह प्रति स्कीमा, यह कैसे उपयोग करने के लिए ....?
यह मुझे इस त्रुटि देता है जब मैं इसे चलाने के लिए प्रयास करें:

त्रुटि:उपयोग एक से अधिक MongoDB

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


यहाँ मेरा 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 
    }; 

उत्तर

40

नेवला में आप कुछ इस तरह कर सकते हैं:

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

मैं उन्हें एक ही नाम और फ्लॉप दे रहा था पता है कि संग्रह का नाम 3 पैरामीटर में की उम्मीद है। –

+0

कोई सुझाव है कि दोनों स्कीमा की वस्तु खोजने के तरीकों को कैसे करें? उदाहरण के लिए , मैं केवल उपयोगकर्ता और पंजीकृत उपयोगकर्ताओं को ढूंढना चाहता हूं और बस उस क्वेरी का उपयोग करके सॉर्ट करें। – Leg0

+1

लेग 0, jQuery को इसके साथ क्या करना है? – bluehallu