0
db(mongo)からいくつかのデータを取得する次のコードがあります。アップデートされたモデルをmongodbに保存
function getAllUsers(){
var UsersPromise = Q.defer();
UserSchema.find({}, function(err, data){
if(err){
UsersPromise .reject(err);
}else {
UsersPromise .resolve(data);
}
});
return UsersPromise .promise;
}
次に、これらのモデルをそれぞれ修正します。ユーザーのタイプに応じて、特定のフィールドをモデルに追加します。 (これは正しく動作しています)。
function buildUsers(users){
// my code iterates over users and adds
// properties as required.
// Working fine.
return users; // updated users.
}
ここで、これらの更新されたモデルをmongoに保存したいと思います。これが私の髪を引っ張ってくれます。
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;
}
最後に、私は次のようにこれらの関数を呼び出す:
DB.connect()
.then(getAllUsers)
.then(buildUsers)
.then(saveUsers)
.catch(errorHandler);
すべては私がUserSchema.save
を呼び出す正しくそれまでは動作します。何が問題なの?
PS:私はmongoose
を使用しています。
TIA。
おかげメイトを使用して単純な実装です。それを見てあなたに知らせるでしょう。 :) – AdityaParab
ありがとう!出来た。しかし、私は 'async.eachSeries'の代わりに' async.forEachOf'を使用しなければなりませんでした。再度、感謝します。 :) – AdityaParab