让我们看一下:
http://guide.couchdb.org/draft/views.html
您可以使用任何您想要的表达式(javascript 代码)进行搜索并用它来索引文档。
例如,通过蒲团,您可以创建一个测试数据库,并根据您的问题添加以下两个文档:
{“_id”:“36fef0472fb7eec035c87e4f4b0381bf”,“_rev”:“12-4ef9014a3670a7e6acd58ad92d26fc1e”,“数据”:{“年龄”:6,“收入”:10,“身高”:20,“dumplings_consumed”:5},“名称”:“乔”}
{“_id”:“36fef0472fb7eec035c87e4f4b038ffa”,“_rev”:“8-f0a0a51b830bf3d4bc3ec5697440792f”,“姓名”:“迈克”,“数据”:{“年龄”:27,“收入”:9,“身高”:78, “dumplings_consumed”:256 } }
您只需要使用 Futon 访问您的数据库并使用以下 Map 函数创建一个临时视图:
function(doc) { var 年龄、收入、身高;if (doc.name && doc.data && doc.data.age && doc.data.income && doc.data.height) { if ( doc.data.age > 25 && doc.data.age < 30 && doc.data .income < 10 && doc.data.height > 7) { emit(doc.name, doc.data); } } }
只需运行,您就会得到结果。
永久的观点是,第一次执行请求时,内部的 B-tree 是建立起来的,这需要时间。即使将文档添加到数据库中,进一步的执行也应该非常快(只要它们的数量是总数的一小部分)