spring data couchbase N1ql查询参数

时间:2017-05-22 21:49:28

标签: spring-data-couchbase

我正在使用Spring-data-Couchbase 2.1.5。我想在下面的文档中运行以下N1QL查询。谁能建议怎么做?

1)N1QL查询

SELECT pkgPrcStsCd, count(*) AS count
FROM `default`
WHERE ANY sort IN busOp SATISFIES sort.opPlnDt = now_str('1111-11-11') END
GROUP BY (pkgPrcStsCd)

2)Couchbase中的文档为

{
  "docType": "busOpPrcShu",
  "docId": "busOpPrcShu-US-NJTIN-PKG-1Z2FW2350209207151-171901",
  "docVer": 1,
  "className": "com.operations.package",
  "shuTckNr": "32547354dhfgds",
  "ogzCountryCode": "US",
  "ogzNumber": "12345",
  "pkgXcpRsnCd": "78",
  "pkgPrcStsCd": "01",
  "prcStsUdtTs": "2017-05-19 15:50:30",
  "evtMosRenSleIr": "true",
  "evtTypCd": "02",
  "evtCgyCd": "01",
  "evtTypUdtTs": "2017-05-19T11:45:30Z",
  "eqpNr": "04856374",
  "busOp": [
    {
      "docId": "gkfhgjh",
      "opPlnDt": "2017-05-22",
      "wrkCpt": [
        {
          "docId": "fhkdshfsj"
        }
      ]
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

该查询似乎不能映射到实体类型,因此这超出了Spring Data的范围。在查询实体时,Spring Data Couchbase通常会应用额外的步骤,例如通过## da is data frame & Ozone is column name ##for single column mean(da$Ozone, na.rm = TRUE) ##for all columns colMeans(x=da, na.rm = TRUE) 属性选择具体类或解码文档的密钥元数据......

但是Emp Type : (I want Dropdown here). 有一个<span> Emp Type</span>: @Html.DropDownList("EmpType1", new SelectList(@ViewBag.EmplayeeTypeViewBag, "Key", "Value"),new { @class = "form-control" }) 方法,不会尝试这些额外的步骤,只是使用Jackson来解组你提供的类型。所以你可以有一个包含2个字段的简单类(一个用于_class,一个用于CouchbaseTemplate)并使用该方法。

必须使用Couchbase SDK手动构建查询,无论是findByN1qlFragment还是使用pkgPrcStsCd DSL。