web-dev-qa-db-ja.com

Mongoose async / await検索して編集して保存しますか?

Async/await promiseを使用して検索してから保存することは可能ですか?

私は次のコードを持っています:

try {
    var accounts = await Account.find()
    .where("username").in(["[email protected]"])
    .exec();
    accounts.password = 'asdf';
    accounts.save();
} catch (error) {
    handleError(res, error.message);
}

そして私は次のエラーを受け取ります:

ERROR: accounts.save is not a function
8
Dev01

これは私が探していたものです:

try {
    var accounts = await Account.findOneAndUpdate(
        {"username" : "[email protected]"},
        {$set: {"password" : "aaaa"}},
        {new : true}
    );
    res.status(200).json(accounts);
} catch (error) {
    handleError(res, error.message);
}

または(@JohnnyHKにfind vs findOneのヒントをありがとう!):

try {
    var accounts = await Account.findOne()
    .where("username").in(["[email protected]"])
    .exec();
    accounts.password = 'asdf';
    accounts.save();
    res.status(200).json(accounts);
} catch (error) {
    handleError(res, error.message);
}
9
Dev01