node.js - MongoDB:如何 1. 锁定集合 2. 读取 3. 基于读取的写入?
问题描述
我有以下格式的用户集合:
{
username: "john"
}
以及以下格式的交易集合:
{
username: "john",
amount: 100
}
为了获得用户余额,我将使用他们的用户名获取所有交易并将金额相加。
我需要在我的应用程序中添加“提款”功能,从他们的余额中减去一些价值,并将真钱转移到他们的银行账户。
代码看起来像这样:
function withdraw(username, amount) {
if amount <= transactions.find({"username": username}).map(tx => tx.amount).sum() {
// NOTE: transaction with negative value because it's a withdrawal operation
transactions.insert({"username": username, "amount": -amount});
send_real_money_to_user_bank_account(USER_CARD_NUMBER, amount);
}
}
问题:
我需要确保在andtransactions
之间没有写入集合,并且只调用一次,因为我不想意外地将钱多次转移到用户的银行账户。如何在 node.js + mongodb 中执行此操作?transactions.find
transactions.insert
send_real_money_to_user_bank_account
解决方案
推荐阅读
- jquery - 在 div 中更改 div 的样式
- javascript - AJAX 调用中的 Crypto-JS 纯文本解密错误
- spring - Hikari + Hibernate + Postgres:无法连接
- windows - 如何以编程方式设置 SourceMask 大小?
- laravel - 将数据从控制器带到 vue.js 的正确方法是什么?Laravel-vue.js
- css - HTML/CSS/JavaScript 方法,用于按行和列调整单元格大小
- reactjs - React useState 似乎不适用于对象
- python - 如何将嵌套字典呈现为表格
- python - Tkinter - 将文本框中的信息插入到 python 脚本中的特定位置
- python - 过滤大量 pyspark 数据帧,成功执行后 .show() 方法出错