2013-02-27 11 views
6

Attualmente ho un'applicazione di nodo che utilizza mangusta per salvare un oggetto in un MongoDB. Sto usando un modello simile a questo:Salvataggio di un oggetto Mongoose in due raccolte

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

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

mongoose.model('Registration', RegistrationSchema); 

Che salva i miei oggetti in una raccolta denominata registrazioni.

Salvare i miei registrazioni in quanto tale:

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); 
     } 
     }); 

Vorrei anche per salvare questo stesso oggetto quando creo che, in un'altra raccolta con un nome diverso, come ad esempio registrations_new, o qualcosa in tal senso. Voglio duplicare questa voce nella nuova raccolta. Ho provato ad aggiungere l'altra collezione nella stringa di connessione, che ha completamente distrutto la parte di mongo, ho provato a creare un nuovo modello chiamato New_Registration, caricare lo schema e provare a salvarlo individualmente, ma ho un altro problema. Sembra che Mongoose accoppiasse lo schema con la raccolta e che non ci sia davvero modo di sovrascrivere la raccolta a cui sta salvando.

Qualcuno ha qualche soluzione per questo?

risposta

10

È possibile utilizzare lo stesso schema in più modelli, in modo da qualcosa come questo funziona:

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

Si signore, sono un salvagente. Grazie mille. –

Problemi correlati