CouchDB 视图 - 按列表字段属性过滤 (doc.objects.[0].attribute)
CouchDB View - Filter by List Field Attribute (doc.objects.[0].attribute)
我需要创建一个列出文档字段属性值的视图。
示例文档:
{
"_id": "003e5a9742e04ce7a6791aa845405c17",
"title", "testdoc",
"samples": [
{
"confidence": "high",
"handle": "joetest"
}
]
}
使用该文档的示例,我想要一个视图,该视图将 return "handle"
的值
我发现这个例子的标题是 - 获取具有特定属性的 object 的内容,例如doc.objects.[0].属性。但是当我填写属性名称时,例如"handle" 并将 doc.objects 替换为 doc.samples,我没有得到任何结果:
Toggle line numbers
// map
function(doc) {
for (var idx in doc.objects) {
emit(doc.objects[idx], attribute)
}
}
这将创建一个键值对数组,其中键始终是 handle
的值。将 null
替换为您想要的值,例如doc.title
。如果要获取附加到每一行的文档,请在请求视图时使用查询参数 ?include_docs=true
。
// map
function (doc) {
var samples = doc.samples
for(var i = 0, sample; sample = samples[i++];) {
emit(sample.handle, null)
}
}
像这样 ->
function(doc) {
for (var i in doc.samples) {
emit(doc._id, doc.samples[i].handle)
}
}
它会根据doc._id字段作为关键字产生一个结果。或者,如果您希望您的密钥基于 .handle 字段,您可以反转 emit
中的参数,以便您可以按 startKey=
、endKey=
.
进行搜索
我需要创建一个列出文档字段属性值的视图。
示例文档:
{
"_id": "003e5a9742e04ce7a6791aa845405c17",
"title", "testdoc",
"samples": [
{
"confidence": "high",
"handle": "joetest"
}
]
}
使用该文档的示例,我想要一个视图,该视图将 return "handle"
的值我发现这个例子的标题是 - 获取具有特定属性的 object 的内容,例如doc.objects.[0].属性。但是当我填写属性名称时,例如"handle" 并将 doc.objects 替换为 doc.samples,我没有得到任何结果:
Toggle line numbers
// map
function(doc) {
for (var idx in doc.objects) {
emit(doc.objects[idx], attribute)
}
}
这将创建一个键值对数组,其中键始终是 handle
的值。将 null
替换为您想要的值,例如doc.title
。如果要获取附加到每一行的文档,请在请求视图时使用查询参数 ?include_docs=true
。
// map
function (doc) {
var samples = doc.samples
for(var i = 0, sample; sample = samples[i++];) {
emit(sample.handle, null)
}
}
像这样 ->
function(doc) {
for (var i in doc.samples) {
emit(doc._id, doc.samples[i].handle)
}
}
它会根据doc._id字段作为关键字产生一个结果。或者,如果您希望您的密钥基于 .handle 字段,您可以反转 emit
中的参数,以便您可以按 startKey=
、endKey=
.