38

mongodbのコレクションごとに複数のスキーマを使用したかったのですが、どのように使用するのですか?
実行しようとすると、次のエラーが発生します。

エラー:

allUsersOverwriteModelError:コンパイル後にモデル を上書きすることはできません。OverwriteModelError:コンパイル後にモデル
を上書きすることはできません。checkInOut


これが私の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
   };
4

3 に答える 3

64

マングースでは、次のようなことができます。

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

この 2 つのスキーマは、'users' コレクションに保存されます。

詳細については、http: //mongoosejs.com/docs/api.html#index_Mongoose-modelのドキュメントを参照するか、次の要点を参照してください。

于 2013-01-22T08:10:54.297 に答える