【问题标题】:Multiple optional keys in couchbase沙发底座中的多个可选键
【发布时间】:2013-03-25 19:19:43
【问题描述】:

我的地图功能

function(doc, meta) {
  emit([doc.city, doc.region], doc.id);
}

我的查询

?keys=[["New York", "Northeast"]]

这将发出:

{ 
  city: 'New York',
  region: Northeast
}

如果我想使用相同的地图功能仅从东北部获取这些城市,它将无法正常工作。有什么方法可以只匹配其中一个键吗?喜欢...

?keys=[[null, "Northeast"]]

输出

[{ 
  city: 'New York',
  region: 'Northeast'
},
{
  city: 'Boston',
  region: 'Northeast'
}]

【问题讨论】:

    标签: couchbase


    【解决方案1】:

    当您在 Couchbase 中使用查询/视图时,您只能从左到右读取密钥。

    因此,如果您希望能够查询每个“部分”,您需要创建一个新的发射视图(如果您想在同一个视图中进行 2 个发射或创建 2 个视图,您可以这样做)

    emit(doc.region, doc.city);
    

    例如使用查询它

    ?startkey=["Northeast"]&endkey["Northeast",{}]
    

    另外,如您所见,我没有发出 doc.id,这不是必需的,因为 doc.id 始终由 Couchbase 视图发出。

    【讨论】:

    • 如果关键字段之一(在我的情况下为第二个)是日期,这同样适用。
    • 可以,但是一定要把日期转换成长整数或者数组 dateToArray(doc.yourDate)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多