什么是发射原稿值的一个较好的方法:Cloudant二级索引查询include_docs
- 保持文档作为秒的值。索引键,如emit(doc._id,doc)或
- 值应为空并且查询包含include_docs。
据我了解,include_docs = true会在查看二级索引时进行另一个查询查询(内部),但另一方面,插入/更新速度减慢,文档成为次要索引值。
任何资源,作为所有可以在二级索引中完成的详尽参考,将是非常有用的。
什么是发射原稿值的一个较好的方法:Cloudant二级索引查询include_docs
据我了解,include_docs = true会在查看二级索引时进行另一个查询查询(内部),但另一方面,插入/更新速度减慢,文档成为次要索引值。
任何资源,作为所有可以在二级索引中完成的详尽参考,将是非常有用的。
请看看官方的CouchDB文档:http://docs.couchdb.org/en/1.6.1/couchapp/views/intro.html
很难确定什么是不知道的情况下使用更好。 您提供的地图功能会发出所有文档,如果您需要获取所有文档,该功能将非常有用。以下场景描述了一些其他的情况下,你可以考虑:
如果您的文件是小,你很可能会被某些领域的文档进行搜索,如日期,你可发射领域为重点,并没有什么作为的值(视图名称可以是by_date
),限定在所述查询的搜索条件,并且包括文档:
emit(doc.date)
和样品网址为:
http://host:port/db/_design/searches/_view/by_date?key="2012-01-5"&include_docs=true
立即为您提供与搜索条件匹配的所有文档。
同样,你可以发出DOC的值,而不是使用 'include_docs' 选项:
emit(doc.date, doc)
和样本URL现在是:
http://host:port/db/_design/searches/_view/by_date?key="2012-01-5"
不幸的是,我不知道这和以上的性能差异是什么。
如果您的文件是巨大的,你很可能会获取一个单独的文件之前提出的摘要,(让调用视图by_date_summaries
):
emit(doc.date, {"id": doc._id, "title":doc.title, "info":doc.otherInfo});
和样本URL来获取摘要是:
http://host:port/db/_design/searches/_view/by_date_summaries?key="2012-01-5"
现在,您可以显示摘要列表,一旦用户选择了其中的一个,你使用汇总发出的ID获取实际文档
显然有更多的机制可用:复杂的键,减少功能等,但我认为上述2例足够了,而不知道确切的用例,它们是探索基本couchdb查询机制的一个很好的起点。
重要的是要考虑您的用例,并设计您的数据模型和视图。