非关系数据库中状态数组的最佳模式是什么?

时间:2018-08-07 10:25:10

标签: mongodb non-relational-database

我们如何更改obj数组中的状态?

出什么问题了?

  • 我和db中的obj具有具有操作和状态的对象数组: { ID: .. Stauts:.. 信息:... 操作:[{  时间戳:...  操作:ENUM  staus:ENUM(计划,运行,完成) }] }
  • 我们处于分布式和多线程环境中。 (微服务)
  • DB Mongodb

问题:如何在数据库中不更改种族就改变这个文件?

如果我们先阅读文档,然后检查执行状态,就会发现(在实践中)我们处于分布式环境中。

我们有2个想法: -更改哈希图中的数组:好主意,在图中您可以更新文档和原子操作。但是您失去了与数据库中数据的兼容性。 -使用具有不可变obj 可变列表作为数组。在mongo中(通常在主要的非关系db上,除push和pull之外的数组操作不是原子的。)我们可以在状态列表中更改数组。玩具拉出状态列表,然后在读取时可以删除最旧或不一致的数据。

什么是最好的方法?

0 个答案:

没有答案