2013-02-27 27 views
6

目前我有一個使用貓鼬將對象保存到MongoDB中的節點應用程序。我使用一個類似的模式:將Mongoose對象保存爲兩個集合

var mongoose = require('mongoose') 
    , Schema = mongoose.Schema; 

var RegistrationSchema = new Schema({ 
     name:{ type: String, default: '', trim: false} 
}); 

mongoose.model('Registration', RegistrationSchema); 

從而節省了我的對象到一個集合稱爲註冊。

我我的登記保存爲這樣:

var registration = new Registration(data); 

     registration.save(function(err) { 
     if (err) { 
      return callback({ 
      source: 'data_save', 
      type: 'admin', 
      errors: err 
      }); 
     } 
     else { 
      return callback(null, data); 
     } 
     }); 

我也想,當我創建它,保存此相同的對象,到另一個收集使用不同的名稱,如registrations_new,或諸如此類的話。我想將此條目複製到新集合中。我試圖在連接字符串中添加其他集合,這完全打破了mongo的一部分,我嘗試創建一個名爲New_Registration的新模型,加載該模式並嘗試單獨保存它,但我遇到了另一個問題。似乎Mongoose將模式與集合配對,並且確實無法覆蓋它保存到哪個集合。

任何人都有這方面的解決方案?

回答

10

您可以使用多個型號相同的架構,所以像這樣的工作:

var RegistrationSchema = new Schema({ 
    name:{ type: String, default: '', trim: false} 
}); 

var Registration = mongoose.model('Registration', RegistrationSchema); 
var New_Registration = mongoose.model('New_Registration', RegistrationSchema); 

var registration = new Registration(data); 
registration.save(); 

var new_registration = new New_Registration(data); 
new_registration.save(); 
+1

你的先生,是一個救星。非常感謝你。 – 2013-02-27 15:33:21

相關問題