【问题标题】:The grouping of the keys by name按名称对键进行分组
【发布时间】:2012-05-23 19:17:43
【问题描述】:

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

"key1_1":"value1"; "key1_2":"value2"; "key1_3":"value3";
“key2_1”:“value4”; "key2_2":"value5"; "key2_3":"value6";
"key3_1":"value7"; "key3_2":"value8"; "key3_3":"value9";

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

var info = client.Get ("key1_ *") 或类似的东西。键名中是否有任何过滤器,或者是否有任何分组选项可以解决我的问题?

【问题讨论】:

    标签: c# grouping key couchbase


    【解决方案1】:

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

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

    其中 group 等价于 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>)
    

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2022-01-15
      • 1970-01-01
      • 2018-08-14
      相关资源
      最近更新 更多