NoSQL--couchdb

Couchdb

CouchDB是Apache组织发布的一款开源的、面向文档类型的NoSQL数据库。由Erlang编写,使用json格式保存数据。CouchDB以RESTful的格式提供服务
可以很方便的对接各种语言的客户端
CouchDB最大的竞争对手就是熟悉的MangoDB。

Docker中CouchDB安装配置图解

1.docker安装couchdb

Step1:docker pull couchdb

Step2:创建一个couchdb容器,赋值给COUCH1
COUCH1=$(docker run -d -p 5984 -v /var/lib/couchdb couchdb) 

Step3: 
HOST=127.0.0.1
URL="http://$HOST:$(docker port $COUCH1 5984 | grep -o '[1-9][0-9]*$')/_utils/" 
docker port $COUCH1 5984 //映射到了宿主机32768端口,并监听所有ip

//输出结果,本人是32769,因为32768已被占用
0.0.0.0:32768

Step4:
echo "Navigate to $URL in your browser, and use the couch interface to add data" 
//输出结果
Navigate to http://123.xx.xx.x8:32768/_utils/ in your browser, and use the couch interface to add data 

Step5:打开浏览器,输入http://127.0.0.1:32769/_utils

2.创建数据库mydb --图形界面即可(右上解->Create Database)

3.golang向其中put数据(JSON格式)

package database

import (
    "github.com/joelnb/sofa"
    "time"
    "fmt"
)

/*
CouchDB是Apache组织发布的一款开源的、面向文档类型的NoSQL数据库。由Erlang编写,使用json格式保存数据。CouchDB以RESTful的格式提供服务
可以很方便的对接各种语言的客户端
CouchDB最大的竞争对手就是熟悉的MangoDB。

docker中couchdb安装配置图解:https://www.linuxidc.com/Linux/2017-03/142405.htm
*/

func CouchDB(){
    conn,err:=sofa.NewConnection("http://127.0.0.1:32769",10*time.Second,sofa.NullAuthenticator())

    if err !=nil{
        panic(err)
    }

    db:=conn.Database("mydb")
    doc:=&struct {
        sofa.DocumentMetadata
        Name string `json:"name"`
        Type string `json:"type"`
    }{
        DocumentMetadata:sofa.DocumentMetadata{
            ID:"fruit",
        },
        Name:"apple",
        Type:"fruit",
    }
    rev,err:=db.Put(doc)
    if err!=nil{
        panic(err)
    }
    fmt.Println(rev)
}

main方法调用成功后,浏览器显示如下所示:

 

另:CouchDB与CouchBase的比较

 

posted @ 2019-01-28 16:15  kaixinyufeng  阅读(434)  评论(0编辑  收藏  举报