zoukankan      html  css  js  c++  java
  • couchdb的使用例子

    couchdb安装

    sudo apt-get install erlang
    sudo apt-get install libmozjs185-dev libicu-dev

    下载源码,编译安装

    启动以后
    进入管理界面
    http://localhost:5984/_utils

    数据的curd部分遵循restful模式,直接忽略,不过关于查询,由于文档型不太好弄关系处理,所以,添加了一个视图,用于map reduce的数据查询
    在couchdb里面做map reduce查询不复杂,用于查询的view和一般的文档没有太大的区别,有两个地方不一样
    必须以_design开头,必须有views字段,例如

    {
       "_id": "_design/articles",
       "_rev": "6-3d7568f84acd59d397e8b0e7f7add7eb",
       "language": "javascript",
       "views": {
           "all": {
               "map": "function(doc) {  emit(doc.user_name, doc.money); }",
               "reduce": "function (key, values, rereduce) {   return sum(values); }"
           },
           "by_author_id": {
               "map": "function(doc) { if(doc.type == 'article') { emit([doc.user_name], doc); }  }"
           }
       }
    }

    假如说我有几个数据

    {
       "_id": "0c5df7ff242754705fb3355373001fca",
       "_rev": "5-e705b7220c11304fd2212d40b1258bce",
       "money": 100,
       "user_name": "猪头",
       "type": "article"
    }
    
    {
       "_id": "0c5df7ff242754705fb3355373002827",
       "_rev": "4-b9024f71db567187cc36cadbabecc580",
       "money": 200,
       "user_name": "白痴"
    }

    对于all查询条件进行查询
    map+reduce一起

    curl http://127.0.0.1:5984/test_db/_design/articles/_view/all?group=true

    光查map,不reduce

    curl http://127.0.0.1:5984/test_db/_design/articles/_view/all?reduce=false

    查询by_author_id条件

    curl http://127.0.0.1:5984/test_db/_design/articles/_view/by_author_id?reduce=false

    自己看看结果比对下
    定义在couchdb里面查询脚本支持python,js,erlang,不过似乎js最简单点

    关于replication

    默认的couchdb是绑定的本地ip,需要改成0.0.0.0
    目的数据库的database必须存在,否则会失败
  • 相关阅读:
    最大团问题
    树的重心与相关性质
    2020年牛客算法入门课练习赛3 B
    牛客练习赛66 E
    浅谈后缀数组SA
    [随机化算法] 听天由命?浅谈Simulate Anneal模拟退火算法
    “优美的暴力”——树上启发式合并
    [线段树系列] LCT打延迟标记的正确姿势
    [Tarjan系列] Tarjan算法与有向图的SCC
    [Tarjan系列] 无向图e-DCC和v-DCC的缩点
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4296121.html
Copyright © 2011-2022 走看看