猫鼬findOneAndUpdate返回更新后的记录,但记录实际上未在数据库中更新

时间:2019-05-30 07:37:29

标签: mongodb mongoose

我正在尝试在存款或取款后为用户更新硬币余额。在.then块中,它显示正确的更新值,但是当我检查数据库时,该值未更新。

这是一个收集模式

mongoose.Schema({
    user_id: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'users',
        required: true,
    },
    coin_code: { type: String, required: true, },
    coin_balance: { type: Number, default: 0 },
    status: { type: Boolean },
    created_date: { type: Date },
    modified_date: { type: Date },
});

这是更新coin_balance的代码

let updated_coin_merchant = await coin_merchant_model.findOneAndUpdate(
    {
        user_id: user_id,
        coin_code: coin_code
    }, {
        $inc: { coin_balance: Number(new_amount) }
    }, { new: true }
);

当我控制台updated_coin_merchant时,它显示正确的记录,但是当我检查数据库中的记录时,它没有更新。这个问题随时随地出现。大多数情况下,更新工作正常,但会随机停止工作。

这时,当我编写此问题时,即使仅通过一个用户更改了记录,即使我通过Robo3T更改了coin_balance,它也会显示更新值几秒钟,并自动恢复为旧值。

0 个答案:

没有答案