Apache CouchDB

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(用户)
(未显示1个用户的36个中间版本)
第1行: 第1行:
Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.
+
{{top news}}
[[Image:Apache-CouchDB-Sketch.png|right|thumb|Apache CouchDB Sketch]]
+
{{SeeWikipedia}}
CouchDB is written in [[Erlang]], but can be easily accessed from any environment that provides means to make HTTP requests. There are a multitude of third-party client libraries that make this even easier for a variety of programming languages and environments.
+
[[Image:Couchdb-90x90.gif|right]]
  
相似项目: [[MongoDB]]
 
 
==简介==
 
==简介==
CouchDB是一个文档数据库;它是一个支持复制的(Replecated)文档数据库,具有REST接口,也就是说可以在 HTTP上,用标准的GET、PUT、POST动词去访问。而且它用JavaScript作为查询语言去建立数据视图(View)。在SQL数据库里,你要定义各种表和表中的数据类型及大小,CouchDB不一样,它是没有Schema的。在CouchDB里,每个文档都是独立的对象,可以是任意的 JSON结构。这是技术上的表述。那么它的优点在哪里呢?它有利于构建很多协作型的应用,很多Web应用都是围绕着文档、上下文、任务、Bug报告,诸如此类的东西。这些就是CouchDB最擅长的方面。
+
CouchDB是一个文档数据库;它是一个支持复制的(Replecated)文档数据库,具有REST接口,也就是说可以在HTTP上,用标准的GET、PUT、POST去访问。而且它用JavaScript作为查询语言去建立数据视图(View)。在SQL数据库里,你要定义各种表和表中的数据类型及大小,CouchDB不一样,它是没有Schema的。在CouchDB里,每个文档都是独立的对象,可以是任意的 JSON结构。这是技术上的表述。那么它的优点在哪里呢?它有利于构建很多协作型的应用,很多Web应用都是围绕着文档、上下文、任务、Bug报告,诸如此类的东西。这些就是CouchDB最擅长的方面。
  
CouchDB和Lotus Notes最接近, 其核心就是文档模型.
+
相似项目: [[MongoDB]]
  
 +
CouchDB和Lotus Notes最接近, 其核心就是文档模型.
 +
[[Image:Apache-CouchDB-Sketch.png|right|thumb|Apache CouchDB Sketch]]
 
[http://www.infoq.com/cn/interviews/CouchDB-Damien-Katz-cn CouchDB创造者Damien Katz畅谈CouchDB]
 
[http://www.infoq.com/cn/interviews/CouchDB-Damien-Katz-cn CouchDB创造者Damien Katz畅谈CouchDB]
==Install==
+
 
 +
==指南==
 +
 
 +
===[[Docker]]===
 +
[https://github.com/apache/couchdb-docker Apache CouchDB Docker]
 +
 
 
===Windows===
 
===Windows===
 
先安装 Erlang, 再安装 CouchDB
 
先安装 Erlang, 再安装 CouchDB
第18行: 第24行:
 
访问  http://localhost:5984/_utils/index.html
 
访问  http://localhost:5984/_utils/index.html
  
更多细节: http://wiki.apache.org/couchdb/Installing_on_Windows  
+
更多细节: http://wiki.apache.org/couchdb/Installing_on_Windows
 +
 
 
==Database==
 
==Database==
 
A CouchDB database is a flat collection of these documents.
 
A CouchDB database is a flat collection of these documents.
第39行: 第46行:
 
   emit(null, doc);
 
   emit(null, doc);
 
  }
 
  }
 +
 +
==Node.js==
 +
默认的[http://docs.huihoo.com/apache/couchdb/2.1/query-server 查询服务器]使用[[JavaScript]]编写,运行在 Mozilla [[SpiderMonkey]]。
 +
 +
[[MongoDB]] 也使用 SpiderMonkey 作为服务端 JavasScript 执行引擎。
 +
 +
[[Node.js]]查询服务器
 +
npm install -g couchjs
  
 
==Python==
 
==Python==
 +
[[Image:couchdb-python.png|right]]
 +
*[[couchdb-python|CouchDB Python Library]]
 
*[[Couchdbkit]]
 
*[[Couchdbkit]]
 
*[http://www.eflorenzano.com/blog/post/using-couchdb-django/ Using CouchDB with Django]
 
*[http://www.eflorenzano.com/blog/post/using-couchdb-django/ Using CouchDB with Django]
 
*[http://lethain.com/entry/2008/aug/18/an-introduction-to-using-couchdb-with-django/ An Introduction to Using CouchDB with Django]
 
*[http://lethain.com/entry/2008/aug/18/an-introduction-to-using-couchdb-with-django/ An Introduction to Using CouchDB with Django]
==Links==
+
 
*http://couchdb.apache.org/
+
==分发版==
 +
*[https://github.com/cloudant/bigcouch BigCouch] A Highly Available, Fault-tolerant, Clustered Version of Apache CouchDB,不再更新,代码合并到CouchDB。
 +
*[https://www.ibm.com/analytics/us/en/technology/cloud-data-services/cloudant/ IBM Cloudant]
 +
 
 +
==用户==
 +
*[[Hyperledger Project]] [https://www.hyperledger.org/hyperledger-fabric-1-0 使用CouchDB作为状态存储]
 +
*[https://cloudant.com/ IBM Cloudant]
 +
*[[dotCloud]] open-source cloud federation platform
 +
*[[Ajatus CRM]] A CRM that runs as a local Ajax web application
 +
*[[Couchit]] minimal site creator
 +
*http://scratchpad.cmlenz.net/
 +
*[https://wiki.apache.org/couchdb/CouchDB_in_the_wild >>>更多用户]
 +
*[https://wiki.apache.org/couchdb/Related_Projects >>>相关项目]
 +
 
 +
==图书==
 +
*[http://book.huihoo.com/couchdb-the-definitive-guide/ 自由图书 《CouchDB: The Definitive Guide》]
 +
 
 +
==图集==
 +
<gallery>
 +
image:key-value-wide-row-document-relational-graph.png|5类数据库
 +
image:CAP-Consistency-Apache-CouchDB.png|CAP一致性
 +
image:Apache-CouchDB-Request.png|请求
 +
image:MVCC-Apache-CouchDB.png|MVCC
 +
image:Apache-CouchDB-Synchronization-Conflicts.png|同步冲突
 +
image:apache-couchdb.png|Project Fauxton
 +
</gallery>
 +
 
 +
==链接==
 +
*[http://couchdb.apache.org/ CouchDB官网]
 +
*[https://github.com/apache/couchdb CouchDB @ GitHub]
 
*http://wiki.apache.org/couchdb/
 
*http://wiki.apache.org/couchdb/
 
*http://groups.google.com/group/couchdb
 
*http://groups.google.com/group/couchdb
 
*http://docs.huihoo.com/apache/couchdb/
 
*http://docs.huihoo.com/apache/couchdb/
*http://download.huihoo.com/apache/couchdb/
+
*[http://www.ibm.com/developerworks/cn/opensource/os-cn-couchdb/ 面向文档的数据库 CouchDB]
 +
 
 +
[[category:NoSQL]]
 +
[[category:erlang]]
 +
[[category:apache]]

2018年8月26日 (日) 04:29的版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Apache CouchDB Thanks, Wikipedia.
Couchdb-90x90.gif

目录

简介

CouchDB是一个文档数据库;它是一个支持复制的(Replecated)文档数据库,具有REST接口,也就是说可以在HTTP上,用标准的GET、PUT、POST去访问。而且它用JavaScript作为查询语言去建立数据视图(View)。在SQL数据库里,你要定义各种表和表中的数据类型及大小,CouchDB不一样,它是没有Schema的。在CouchDB里,每个文档都是独立的对象,可以是任意的 JSON结构。这是技术上的表述。那么它的优点在哪里呢?它有利于构建很多协作型的应用,很多Web应用都是围绕着文档、上下文、任务、Bug报告,诸如此类的东西。这些就是CouchDB最擅长的方面。

相似项目: MongoDB

CouchDB和Lotus Notes最接近, 其核心就是文档模型.

Apache CouchDB Sketch

CouchDB创造者Damien Katz畅谈CouchDB

指南

Docker

Apache CouchDB Docker

Windows

先安装 Erlang, 再安装 CouchDB

启动 C:\erl5.7.2\bin\couch_start.bat

访问 http://localhost:5984/_utils/index.html

更多细节: http://wiki.apache.org/couchdb/Installing_on_Windows

Database

A CouchDB database is a flat collection of these documents.

CouchDB Document

A CouchDB document is simply a JSON object.

A CouchDB document is an object that consists of named fields. Field values may be strings, numbers, dates, or even ordered lists and associative maps. An example of a document would be a blog post:

"Subject": "I like Django"  
"Author": "Allen"  
"PostedDate": "5/23/2009"  
"Tags": ["Python", "Django", "Framework"]
"Body": "Django is a high-level Python Web framework that encourages rapid development and clean, I like Django."

CouchDB Views

Views are the primary tool used for querying and reporting on CouchDB documents. There are two different kinds of views: permanent and temporary views.

Views are defined with Javascript functions. Here is the very simplest function:

function(doc) {
  emit(null, doc);
}

Node.js

默认的查询服务器使用JavaScript编写,运行在 Mozilla SpiderMonkey

MongoDB 也使用 SpiderMonkey 作为服务端 JavasScript 执行引擎。

Node.js查询服务器

npm install -g couchjs

Python

Couchdb-python.png

分发版

  • BigCouch A Highly Available, Fault-tolerant, Clustered Version of Apache CouchDB,不再更新,代码合并到CouchDB。
  • IBM Cloudant

用户

图书

图集

链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱