我想从CouchDB中的数据库中过滤子文档。数据库中的示例文档为:
{
"Things": {
"Thing:1": {
"Number":1
"Type": "TI"
},
"Thing:2": {
"Number":2,
"Type": "TI"
}
},
"Type": "TD"
}
是否可以创建一个类似于此子视图的视图来过滤子文档?
for(key in Object.keys(Things)) {
return Things[key].Number == 2;
}
是的,使用地图功能非常容易。例如
function (doc) {
Object.keys(doc.Things).forEach(function(key) {
if(doc.Things[key].Number === 2) emit(doc._id, 1);
});
}
这适用于CouchDB 2.3。 Fauxton使创建和测试视图变得非常容易。
视图_design / thing / _view / thing的设计文档看起来像这样
{
"_id": "_design/thing",
"views": {
"thing": {
"map": "function (doc) {\n Object.keys(doc.Things).forEach(function(key) {\n if(doc.Things[key].Number === 2) emit(doc._id, 1);\n});\n\n}"
}
},
"language": "javascript"
}