【问题标题】:Couchbase nested objects TypeCouchbase 嵌套对象类型
【发布时间】:2016-09-28 13:15:32
【问题描述】:

我正在尝试找出在 couchbase 文档中获取嵌套对象类型的最佳方法。

我有这份文件:

{
  "storeType": {
    "name": "Store"
  },
  "name": "Store",
  "_class": "common.domain.Store",
  "categories": [
    {
      "name": "Series",
      "displayable": false,
      "active": false,
      "highlights": [
        {
          "name": "Spiderman",
          "active": true
        },
        {
          "name": "Spiderman2",
          "active": true
        }
      ],
      "categoryId": "SERIES"
    }
  ],
  "storeId": "STORE::10",
  "order": 1
}

spring data 使用_class 来找出hole 文档类型。

我的问题是:

如何在类别列表中找到每个对象的准确类型?

非常感谢

【问题讨论】:

  • 你的例子中嵌套对象的类型是什么?
  • 这里我有一个包含类别列表的商店(这是一个继承的类),每个类别都有一个亮点列表。
  • 即使使用 Spring Data,我也总是在我的所有文档中添加一个类型字段。这真的很有帮助。您还想通过 N1QL 或 Spring Data 存储库获取它吗?
  • 通过 N1QL。我们所做的通常是将 Spring Data 用于所有简单查询,并使用 java 客户端执行更复杂的查询(明确嵌套对象)。到目前为止,我们有两个问题:通过 N1QL 更新第二级嵌套对象并检索嵌套对象的类型(以避免解析 N1qlQueryResult)
  • 找到要进行更新的查询。我们使用了集合运算符 WITHIN : UPDATE bucket b USE KEYS "Store::1" SET h.active = false FOR h WITHIN b.categories when h.cbHighlightId = "Highlight::1" END 。突出显示不是文档。

标签: java json couchbase spring-data-couchbase couchbase-java-api


【解决方案1】:

找到进行更新的查询。我们使用了集合运算符 WITHIN : UPDATE bucket b USE KEYS "Store::1" SET h.active = false FOR h WITHIN b.categories when h.cbHighlightId = "Highlight::1" END 。突出显示不是文档

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2020-04-21
    • 2021-12-11
    • 1970-01-01
    • 2014-10-03
    • 2022-01-21
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多