参考 > 资料模型 > 数据模型示例和模式 > 模型特定的应用程序上下文 > 原子操作的模型数据
在本页面
尽管MongoDB支持副本集(从版本4.0开始)和分片群集(从版本4.2开始)的多文档事务,但是在许多情况下,如本页所述,非规范化数据模型将继续是您数据和数据的最佳选择。用例。
在MongoDB中,对单个文档的写操作是原子的。对于必须一起更新的字段,将字段嵌入到同一文档中可确保可以自动更新字段。
例如,考虑一种情况,您需要维护有关书籍的信息,包括可用于结帐的副本数量以及当前的结帐信息。
书籍的可用副本和结帐信息应同步。这样,将available
字段和
checkout
字段嵌入到同一文档中可确保您可以自动更新两个字段。
然后,要使用新的结帐信息进行更新,可以使用该
db.collection.updateOne()
方法原子地更新该available
字段和该checkout
字段:
该操作返回一个文档,其中包含有关操作状态的信息:
该matchedCount
字段显示1
文档符合更新条件,并modifiedCount
显示操作已更新1
文档。
如果没有文档符合更新条件,则matchedCount
and
modifiedCount
将是0
并且将指示您无法检出该书。