使用 node-couchdb 模块创建视图
Creating Views using node-couchdb module
由于我是 CouchDB 的新手,我想使用 node-couchdb 模块创建视图?
我可以使用 UI(Futon) 创建视图,但我想使用节点代码使用 node-couchdb 模块创建视图。
另外,如何添加设计文档?
添加文档和设计文档一样吗?
有人可以帮忙吗?
CouchDB 设计文档只是另一个文档,除了它的 _id
字段以 with
_design` 开头。
您可以像使用官方 Apache CouchDB Nano 库一样插入任何其他文档来创建设计文档:
const Nano = require('nano')
const nano = Nano('http://localhost:5984')
const db = nano.db.use('mydb')
const ddoc = {
"_id": "_design/report",
"views": {
"bydate": {
"reduce": "_count",
"map": "function(doc) {\n if (doc.type === 'click') {\n emit(doc.x, doc.y);\n }\n}"
}
},
"language": "javascript"
}
db.insert(ddoc, function(err, data) {
});
我们可以使用 node-couchdb 模块创建视图或设计文档:
couch.insert(_dbname, {
"_id": "_design/query-demo",
"views": {
"full-name": {
"map": "function (doc) { emit(doc._id, doc);}"
}
},
"language": "javascript"
});
在此示例中,full-name 将是视图名称,query-demo 将是设计文档名称
我们可以从该视图中获取数据:
couch.get(_dbname, '_design/query-demo/_views/full_name', {}).then(({ data, headers, status }) => {
console.log(data);
// data is json response
// headers is an object with all response headers
// status is statusCode number
}, err => {
console.log(err);
// either request error occured
// ...or err.code=EDOCMISSING if document is missing
// ...or err.code=EUNKNOWN if statusCode is unexpected
});
由于我是 CouchDB 的新手,我想使用 node-couchdb 模块创建视图?
我可以使用 UI(Futon) 创建视图,但我想使用节点代码使用 node-couchdb 模块创建视图。 另外,如何添加设计文档? 添加文档和设计文档一样吗?
有人可以帮忙吗?
CouchDB 设计文档只是另一个文档,除了它的 _id
字段以 with
_design` 开头。
您可以像使用官方 Apache CouchDB Nano 库一样插入任何其他文档来创建设计文档:
const Nano = require('nano')
const nano = Nano('http://localhost:5984')
const db = nano.db.use('mydb')
const ddoc = {
"_id": "_design/report",
"views": {
"bydate": {
"reduce": "_count",
"map": "function(doc) {\n if (doc.type === 'click') {\n emit(doc.x, doc.y);\n }\n}"
}
},
"language": "javascript"
}
db.insert(ddoc, function(err, data) {
});
我们可以使用 node-couchdb 模块创建视图或设计文档:
couch.insert(_dbname, {
"_id": "_design/query-demo",
"views": {
"full-name": {
"map": "function (doc) { emit(doc._id, doc);}"
}
},
"language": "javascript"
});
在此示例中,full-name 将是视图名称,query-demo 将是设计文档名称
我们可以从该视图中获取数据:
couch.get(_dbname, '_design/query-demo/_views/full_name', {}).then(({ data, headers, status }) => {
console.log(data);
// data is json response
// headers is an object with all response headers
// status is statusCode number
}, err => {
console.log(err);
// either request error occured
// ...or err.code=EDOCMISSING if document is missing
// ...or err.code=EUNKNOWN if statusCode is unexpected
});