使用Node模块Nano的临时CouchDB视图

时间:2014-01-09 13:04:53

标签: node.js couchdb couchdb-nano

Nano没有提供临时视图的文档,是否有任何未记录的方法?如果做不到这一点,你会如何建议某人使用类似纳米的语法执行临时视图。目前我正在尝试将视图创建为_view / guid,查询它,返回结果,然后将其从集合中删除:

function generateToken() {
    return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
}
var db = nano.use('db'),
    fn = 'function(doc){ emit(doc); }',
    token = generateToken(),
    id = '_design/' + token;
db.insert({ views: { view: { map: fn } } }, id, function(){
    db.view(token, 'view', function (err, results) {
        db.get(id, function (err, view) {
            console.log(results);
            db.destroy(id, view._rev);
        });
    });
});

我认为这与内置于沙发核心的临时视图功能不太合适。

我知道临时观点警告,但我相信我有一个真实的使用案例。

3 个答案:

答案 0 :(得分:1)

打开蒲团,看看它对couchDB api的作用是什么?

编辑:去了以上

Futon发帖到SVRNAME / DBNAME / _temp_view?limit = 11& descending = true 请求有效载荷{语言:“javascript”map:function(doc){emit(null,doc.id);} 并且您必须以管理员身份登录。

希望有所帮助

答案 1 :(得分:1)

临时视图API在官方CouchDB文档中有所描述:http://docs.couchdb.org/en/latest/api/database/temp-views.html#post--db-_temp_view

答案 2 :(得分:0)

我认为你可以通过Nano使用nano.request()(或nano.dinosaur())来做到这一点。 https://github.com/dscape/nano#nanorequestopts-callback