由于我们需要提供属于技术部门的员工列表,因此我们需要创建一个将部门用作键的视图,因此map函数如下所示:
保存视图
此函数将文档取入并创建一个列表,其中包含“部门”作为键,而null为值。 在我们的案例中,价值本身并不那么重要。 一个简单的规则是:不要在值中放入太多数据,因为最后Couchbase服务器使用此映射创建了索引。 将会看到Couchbase允许开发人员在访问视图时轻松获取文档信息。
单击“显示结果”按钮,结果将如下所示:
{"id":"501","key":"Accounting","value":null},
{"id":"400","key":"Marketing","value":null},
{"id":"100","key":"Sales","value":null},
{"id":"200","key":"Technology","value":null},
{"id":"300","key":"Technology","value":null},
{"id":"500","key":"Technology","value":null}
正如我们在前面所看到的,可以使用单个URL访问文档,对于视图也是如此。 例如,您可以使用以下URL访问我们刚刚创建的视图:
现在可以使用查询参数通过键参数对结果进行过滤,该参数使用JSON String输入:
现在该查询的结果是:
{"id":"200","key":"Technology","value":null},
{"id":"300","key":"Technology","value":null},
{"id":"500","key":"Technology","value":null}
访问视图时,可以使用许多其他参数来控制大小,超时等等。 其中一个非常有趣的是include_docs,它要求Couchbase在结果中包含文档的全部内容。 因此,如果您致电:
结果是:
{"id":"200","key":"Technology","value":null,"doc": {"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":,"$expiration":,"name":"Jason","dept":"Technology","salary":5500}},
{"id":"300","key":"Technology","value":null,"doc":{"_id":"300","_rev":"1-f3e44cee742bfae10000003200000000","$flags":,"$expiration":,"name":"Mayla","dept":"Technology","salary":7000}},
{"id":"500","key":"Technology","value":null,"doc": {"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":,"$expiration":,"name":"Randy","dept":"Technology","salary":6000}}
现在让我们创建一个稍微复杂的视图来满足以下业务需求:“给我所有薪水在5000到6000之间的员工”
因此,现在您知道您需要使用以下Map函数创建一个以薪金为关键的新视图:
Couchbase在创建/更新索引时会自动对键进行排序,因此,让我们在调用视图时使用startkey和endkey参数。 因此,让我们从以下URL调用视图:
结果是:
{"id":"100","key":5000,"value":null,"doc":{"_id":"100","_rev":"1-0f33580d780014060000002e00000000","$flags":,"$expiration":,"name":"Thomas","dept":"Sales","salary":5000}},
{"id":"501","key":5400,"value":null,"doc":{"_id":"501","_rev":"1-b1fe5bc79637720e0000003100000000","$flags":,"$expiration":,"name":"Ritu","dept":"Accounting","salary":5400}},
{"id":"200","key":5500,"value":null,"doc":{"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":,"$expiration":,"name":"Jason","dept":"Technology","salary":5500}},
{"id":"500","key":6000,"value":null,"doc":{"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":,"$expiration":,"name":"Randy","dept":"Technology","salary":6000}}
结论
在这篇简短的文章中,您将学习如何:
- 安装Couchbase
- 使用管理控制台创建数据
- 用视图查询数据
当我有更多时间时,我将写另一篇文章,用Java和其他语言做同样的事情。