Couchbase多维键

时间:2014-06-22 22:41:58

标签: indexing couchbase

我是Couchbase的新手并试图了解它是否适​​合我的域名。 我有以下数据:

Birth  City    Name
1980   A       John
1981   B       Rick
1982   A       Ase
1983   C       Max
1984   C       Bob
1980   A       Rick
1983   D       John
1982   A       Bob
1985   C       Bob

并没有开始如何实现类似于以下SQL查询:

SELECT birth FROM tbl WHERE city in (A,C) and name (Bob, Rick)

获取以下数据:

1984   C       Bob
1980   A       Rick
1982   A       Bob
1985   C       Bob

'startkey'和'endkey'视图用法的一个重要区别是它不是范围选择,它是两个不同的维度值。

在我的实际场景中,我需要将1-5000个ID放入“IN”语句中。 我发现的唯一方法是使用索引和N1ql http://docs.couchbase.com/prebuilt/n1ql/n1ql-dp3/#create-index.html,但它似乎不是访问数据的最快方式。

  1. 使用大量键值访问多维关键数据的最佳做法是什么?
  2. 在N1ql中创建大'in'语句是否可以?

1 个答案:

答案 0 :(得分:0)

您应该使用emit函数执行视图,包括具有两个维度值的键,并以这种方式返回值:

emit([doc.Name, doc.City], doc.Birth);

您必须使用参数键进行查询:

keys=[["Bob", "A"], ["Bob", "C"], ["Rick", "A"], ["Rick", "C"]]