我什至不确定它是否具有特定名称,但这是方案:
当我使用C#和SQL Server进行编程时,如果表中包含时间戳,则Entity Framework(用于.Net的数据库框架)将自动处理此问题,并且无法更新已修改的数据。
MongoDB / NodeJS中有类似的东西吗?
谢谢 马丁
答案 0 :(得分:0)
mongodb中没有内置的时间戳功能,但在这种情况下,mongoose可能会有所帮助:
答案 1 :(得分:0)
在MongoDB中,并发交易模型并不明显,但可以访问- https://docs.mongodb.com/manual/core/transactions/
答案 2 :(得分:0)
我个人建议远离猫鼬。
您可以做的是创建一个locked
属性:
用户1尝试更新记录,该记录以findOneAndUpdate({locked: null, ...restOfConditions})
开头并将locked
设置为true。
用户2尝试更新一条记录,但它未能findOne
,因为部分条件是始终查询{locked: null}
。
用户1完成了一条记录的更新,这是上次更新的一部分,它取消设置locked
。
这显然需要您实施,但我希望它能使您想到我会选择的方法。