2

Couchbase の例の beer-sample からクエリを実行しようとしています。

このクエリは、Couchbase ブラウザー UI で正常に機能します。

select category, style from `beer-sample` where style like 'Imperial%'

結果:

[
  {
    "category": "North American Ale",
    "style": "Imperial or Double India Pale Ale"
  },
...
]

しかし、クエリを Java に移植すると、非常に奇妙な結果が得られます。(はい、間違った場所で接続を開いたり閉じたりしていることはわかっています.Couchbaseの構文/機能をすばやく調べるためにこれを行っているだけです).

Java コード:

@RequestMapping("/hellocouchbase")
public ResponseEntity<List<JsonObject>> metrics() {

    Cluster cluster = CouchbaseCluster.create();
    cluster.authenticate(username, passwd);

    Bucket bucket = cluster.openBucket("beer-sample");

    N1qlQueryResult result = bucket.query(N1qlQuery.simple("select category, style from `beer-sample` where style like 'Imperial%'"));

    List<N1qlQueryRow> results = result.allRows();      
    List<JsonObject> answer = new ArrayList<>(results.size());

    for(N1qlQueryRow row:results) {
        answer.add(row.value());
    }

    cluster.disconnect();       
    return ResponseEntity.status(200).body(answer);
}

結果:

[
{"cryptoManager":null,"empty":false,"names":["style","category"]},{"cryptoManager":null,"empty":false,"names":["style","category"]},
...
]

Javaクエリが直接クエリと同じ結果を生成する方法を誰かが説明できますか?

4

2 に答える 2