按名称对键进行分组

本文关键字: | 更新日期: 2023-09-27 18:34:31

我使用couchbase服务来存储临时信息。这是我的问题:我有很多对键值,但它们通常分为几组(key1_ *; key2_ *; key3_ *(。例如,该对看起来像:

"key1_1":"值 1"; "key1_2":"值 2"; "key1_3":"值3";
"key2_1":"值4"; "key2_2":"值5"; "key2_3":"值6";
"key3_1":"值7"; "key3_2":"值8"; "key3_3":"值9";

我需要发送一个请求,该请求将用于返回有关这些组中任何值的可用性的信息:例如:

var 信息 = 客户端。获取("key1_ *"(或类似的东西。键名称中是否有任何过滤器,或者是否有任何分组选项可以解决我的问题?

按名称对键进行分组

在 couchbase 2.0 中,您可以使用视图。您可以将 json 对象存储在数据库中,因此键值对应如下所示:

key:<guid>; value: {id:<guid>, group<int>, data<your_values_type>}

其中组等效于 key1_*;然后创建一个视图地图:

function (doc) {
  emit(doc.group, [doc.id, doc.group, doc.data]);
}

您已经获得了这种格式的键值对:

key: <int>group ; value: <array>[id,group,data]

然后,您可以通过在请求中添加"?key="来按键过滤结果。或者,如果您使用一些 api 库,即 .net api,则可以从代码中执行此操作:

Client.GetView<Int64>(Couchbase.Configuration.DevelopmentModeNameTransformer.NamePrefix + "MyViewName", "MyViewName").Key(<desired_key>)
相关文章:
  • 没有找到相关文章