2013-02-27 13 views
6

Obecnie mam aplikację węzła, która używa mangusty do zapisania obiektu w MongoDB. Używam modelu podobnego do tego:Zapisywanie obiektu Mongoose w dwóch kolekcjach

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

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

mongoose.model('Registration', RegistrationSchema); 

Który zapisuje moje obiekty do kolekcji o nazwie rejestracje.

zapisać moje rejestracje jako takie:

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

Chciałbym również, aby zapisać ten sam przedmiot, gdy tworzę go do innej kolekcji z inną nazwą, takich jak registrations_new, albo coś w tym rodzaju. Chcę skopiować ten wpis do nowej kolekcji. Próbowałem dodać inną kolekcję w łańcuchu połączenia, który całkowicie zepsuł część mongo, próbowałem utworzyć nowy model o nazwie New_Registration, załadowałem ten schemat i próbowałem go zapisać indywidualnie, ale mam z tym jeszcze jeden problem. Wygląda na to, że Mongoose łączy schemat z kolekcją i naprawdę nie ma możliwości nadpisania kolekcji, do której jest zapisany.

Ktoś ma jakieś rozwiązanie?

Odpowiedz

10

Można użyć tego samego schematu w wielu modelach, więc coś jak to działa:

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

panu, to ratownik. Dziękuję Ci bardzo. –

Powiązane problemy