Ich habe folgenden Code, um einige Daten von der db (Mongo) zu holen.speichern Sie aktualisierte Modelle zu mongodb
function getAllUsers(){
var UsersPromise = Q.defer();
UserSchema.find({}, function(err, data){
if(err){
UsersPromise .reject(err);
}else {
UsersPromise .resolve(data);
}
});
return UsersPromise .promise;
}
Dann modifiziere ich jedes dieser Modelle. Je nach Benutzertyp füge ich dem Modell bestimmte Felder hinzu. (Dies funktioniert ordnungsgemäß).
Jetzt möchte ich diese aktualisierten Modelle zurück zu Mongo speichern und das ist, wo es mich zieht, meine Haare zu ziehen.
function saveUsers(users){
// here, the users are received correctly. But the following line to save the users fails.
var SaveUsersPromise = Q.defer();
UserSchema.save(users, function(err, data){
if(err){
SaveUsersPromise .reject(err);
} else {
SaveUsersPromise .resolve(data);
}
});
return SaveUsersPromise .promise;
}
Schließlich nenne ich diese Funktionen wie:
DB.connect()
.then(getAllUsers)
.then(buildUsers)
.then(saveUsers)
.catch(errorHandler);
Alles funktioniert einwandfrei, bis ich UserSchema.save
nennen. Was könnte das Problem sein?
PS: Ich verwende mongoose
.
TIA.
Dank Kumpel mit. Will hineinschauen und dich wissen lassen. :) – AdityaParab
Danke! Es funktionierte. Allerdings musste ich 'async.forEachOf' anstelle von' async.eachSeries' verwenden. Danke noch einmal. :) – AdityaParab