2013-02-27 135 views
6

वर्तमान में मेरे पास एक नोड एप्लिकेशन है जो किसी ऑब्जेक्ट को मोंगोडीबी में सहेजने के लिए मोंगोस का उपयोग करता है। मैं इस तरह के मॉडल का उपयोग कर रहा हूं:मोंगोस ऑब्जेक्ट को दो संग्रहों में सहेजना

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, या उस प्रभाव से कुछ के रूप में एक अलग नाम के साथ एक और संग्रह में जब मैं इसे बनाने को बचाने के लिए, चाहते हैं। मैं इस प्रविष्टि को नए संग्रह में डुप्लिकेट करना चाहता हूं। मैंने कनेक्शन स्ट्रिंग में अन्य संग्रह जोड़ने की कोशिश की, जिसने पूरी तरह से मोंगो भाग तोड़ दिया, मैंने न्यू_रेजिस्टेशन नामक एक नया मॉडल बनाने की कोशिश की, स्कीमा लोड किया और इसे व्यक्तिगत रूप से सहेजने का प्रयास किया, लेकिन मेरे पास इसके साथ एक और समस्या है। ऐसा लगता है कि मोंगोस संग्रह के साथ स्कीमा को जोड़ता है, और वास्तव में यह संग्रह करने का कोई तरीका नहीं है कि वह कौन सा संग्रह सहेज रहा है।

किसी के पास इसका कोई समाधान है?

उत्तर

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

आप साहब, एक lifesaver हैं। आपका बहुत बहुत धन्यवाद। –