【问题标题】:Append sensor data into document in Couchbase database将传感器数据附加到 Couchbase 数据库中的文档中
【发布时间】:2018-03-08 02:15:41
【问题描述】:

我们是一群人,正在编写一个关于将传感器数据存储到 noSQL 数据库中的学士项目,我们为此选择了 couchbase。

我们希望在同一个文档中存储相当多的数据,每个传感器每天一个文档,并且我们希望每分钟都添加新的传感器数据。 但不幸的是,我们无法在不覆盖现有数据的情况下将新数据附加到现有文档中。

文档的结构是:

DocumentID: Sensor + date, ie: KitchenTemperature20180227
{
  "topic": "Kitchen/Temp",
  "type": "temperature",
  "unit": "DegC"
  "20180227130400": [
    {
      "data": "24"
    }
  ],
..............
  "20180227130500": [
    {
      "data": "25"
    }
  ],
}

我们都是Couchbase和NOSQL数据库的新手,但是渴望学习和理解我们最好的方法应该如何实现这一目标。 我们已经尝试了UPSERT,插入和更新命令,但是它们全部覆盖现有文档或不会执行,因为该文档已经存在。如您所见,我们有一些顶级信息,如主题、类型、单位。其余的应该是每分钟传入并附加到现有文档的数据。

非常感谢您提供有关如何进行的帮助。

最好的问候,肯尼斯

【问题讨论】:

  • 覆盖现有数据是什么意思?您是说您失去了以前的书面价值,还是需要每次都需要编写整个文档?
  • 是的,每次我使用上述查询时,整个文档都会被覆盖。我不喜欢的一个解决方案是编写整个文档,首先从文档中提取数据并在脚本中在底部添加新数据,然后更新文档。但这不是我喜欢的解决方案。

标签: database nosql couchbase n1ql


【解决方案1】:

在这种情况下,您可以使用子文档 API。这允许您根据“路径”修改文档的某些部分。这张图片给出了获取子文档的想法。

您也可以改变子文档。查看 Couchbase 的子文档 API 文档。 Couchbase 博客网站上还有一些博客文章介绍了 Java 和 Go 中的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多