如何在 couchbase 的单个存储桶中存储不同类型的数据
How to store different kind of datas in single bucket in couchbase
我想将不同类型的数据存储在 Couchbase 的同一个存储桶中,我用谷歌搜索了它的建议 doc_type 和类型参数,但我不知道如何在我的数据中实现那个,我试过了下面的代码,但我不知道该怎么做?
我没有看到任何例子,任何帮助将不胜感激,
JsonObject doc = JsonObject.fromJson(consumerRecord.value().toString());
String id=consumerRecord.key().toString();
bucket.upsert(JsonDocument.create(id, doc));
Couchbase 存储桶存储任何类型的文档。你不必做任何特别的事情。只要它是有效的 JSON,它就可以存储在 Couchbase 存储桶中。
现在,您可能需要某种方式来区分不同类型的文档(例如,为了查询目的)。因此,您可以将 "type" 字段(或 docType 或任何您想要的)作为一种 'marker' 值。您可以在 built-in travel-sample bucket 中看到这方面的示例。例如,查看 airline_10 和 route_10000 文档:
airline_10
{
"callsign": "MILE-AIR",
"country": "United States",
"iata": "Q5",
"icao": "MLA",
"id": 10,
"name": "40-Mile Air",
"type": "airline"
}
route_10000
{
"airline": "AF",
"airlineid": "airline_137",
"destinationairport": "MRS",
"distance": 2881.617376098415,
"equipment": "320",
"id": 10000,
"schedule": [ ... ],
"sourceairport": "TLV",
"stops": 0,
"type": "route"
}
请注意,一个类型为 "airline",另一个类型为 "route"。查找路线的查询示例:
SELECT t.*
FROM `travel-sample` t
WHERE t.type = 'route'
LIMIT 10
这是一种区分文档的方法。另请注意,键是按语义构造的,因此也可以使用它们。这些都不是必需的,所以这实际上取决于您打算如何访问文档。
我想将不同类型的数据存储在 Couchbase 的同一个存储桶中,我用谷歌搜索了它的建议 doc_type 和类型参数,但我不知道如何在我的数据中实现那个,我试过了下面的代码,但我不知道该怎么做?
我没有看到任何例子,任何帮助将不胜感激,
JsonObject doc = JsonObject.fromJson(consumerRecord.value().toString());
String id=consumerRecord.key().toString();
bucket.upsert(JsonDocument.create(id, doc));
Couchbase 存储桶存储任何类型的文档。你不必做任何特别的事情。只要它是有效的 JSON,它就可以存储在 Couchbase 存储桶中。
现在,您可能需要某种方式来区分不同类型的文档(例如,为了查询目的)。因此,您可以将 "type" 字段(或 docType 或任何您想要的)作为一种 'marker' 值。您可以在 built-in travel-sample bucket 中看到这方面的示例。例如,查看 airline_10 和 route_10000 文档:
airline_10
{
"callsign": "MILE-AIR",
"country": "United States",
"iata": "Q5",
"icao": "MLA",
"id": 10,
"name": "40-Mile Air",
"type": "airline"
}
route_10000
{
"airline": "AF",
"airlineid": "airline_137",
"destinationairport": "MRS",
"distance": 2881.617376098415,
"equipment": "320",
"id": 10000,
"schedule": [ ... ],
"sourceairport": "TLV",
"stops": 0,
"type": "route"
}
请注意,一个类型为 "airline",另一个类型为 "route"。查找路线的查询示例:
SELECT t.*
FROM `travel-sample` t
WHERE t.type = 'route'
LIMIT 10
这是一种区分文档的方法。另请注意,键是按语义构造的,因此也可以使用它们。这些都不是必需的,所以这实际上取决于您打算如何访问文档。