Mapreduce Couchdb文档/功能
在包含以下信息的文档中:Mapreduce Couchdb文档/功能,mapreduce,couchdb,couchdb-futon,Mapreduce,Couchdb,Couchdb Futon,在包含以下信息的文档中: { "address": [{ "Street": "123 xyz", "City": "Belmont" }] } 如何查看城市名称。这是否正确: function(doc) { emit(doc.address.City,null); } 它只返回null。我想看看“贝尔蒙特”这个名字。 感谢您的帮助。在您的数据中,地址是一个数组,因此它没有城市属性 如果您的数据中只有一个地址: { "address": { "Str
{
"address": [{
"Street": "123 xyz",
"City": "Belmont"
}]
}
如何查看城市名称。这是否正确:
function(doc) {
emit(doc.address.City,null);
}
它只返回null
。我想看看“贝尔蒙特”这个名字。
感谢您的帮助。在您的数据中,
地址
是一个数组,因此它没有城市
属性
如果您的数据中只有一个地址:
{
"address": {
"Street": "123 xyz",
"City": "Belmont"
}
}
获取/{database}/{u design/{ddoc}/{u view/{view}
应返回:
{"rows":[
{"key":"Belmont", "id":"{id}", "value":null}
]}
作为旁注,请注意,您还可以获得/{database}/{ddoc}/{view/{view}?include_docs=true
:
{"rows":[
{"key":"Belmont", "id":"{id}", "value":null, "doc":{
"address": {
"Street": "123 xyz",
"City": "Belmont"
}
}}
]}
最后但并非最不重要的一点是,如果您的数据中确实需要多个地址,您可以将它们全部发送:
function(o) {
for each (var a in o.address) {
emit(a.City);
}
}
{“name”:“jack”,“address”:[{“Street”:“123 xyz”,“City”:“Belmont”}]}如果我也有名字,我将能够根据您编写的上一个函数看到城市旁边的名字。谢谢你的帮助。我希望看到名称是键,城市是值。使用
include\u docs=true
,您确实可以获得完整的文档(带有“jack”和他的所有地址)。您需要记住的是,键
是您用来选择或排序行的,值
要么是您想要保留的复杂计算的结果,要么是您想要用reduce
函数聚合的部分结果,文档
就是整个文档。