couchdb v2.x python接口在单个模块中。也是一个命令行工具。
CouchDB2的Python项目详细描述
couchdb2
couchdb v2.x python接口在单个模块中。 同时也是一个命令行工具;请参见下面的
这个模块的大部分(但不是全部)功能都适用于couchdb版本<;2.0。
安装
$ pip install couchdb2
此模块依赖于请求
:http://docs.python requests.org/en/master/
示例代码
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()
服务器
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)
连接到CouchDB服务器。
如果use_session
为true,则使用经过身份验证的会话
透明的。否则,每次请求都会发送用户名和密码。
版本
server.version
提供couchdb服务器软件版本的属性。
用户上下文
server.user_context
属性,提供连接的用户上下文。
_结构
str(server)
返回服务器接口的简单字符串表示形式。
_长度
len(server)
返回用户定义的数据库数。
_国际热核电站
fordbinserver:...
返回服务器上所有用户定义数据库的迭代器。
_获取项目
db=server[name]
获取命名数据库。
_包含
$ pip install couchdb2
0
$ pip install couchdb2
指定的数据库是否存在?
_呼叫
$ pip install couchdb2
1
返回有关服务器的元信息。
上下
$ pip install couchdb2
2
服务器是否已启动并运行,准备好响应请求?
couchdb版本>;=2.0。
获取
$ pip install couchdb2
3
获取命名数据库。如果check
为true,则引发notfounderror
如果数据库不存在。
创建
$ pip install couchdb2
4
创建命名数据库。
获取配置
$ pip install couchdb2
5
获取命名节点的配置。
获取活动任务
$ pip install couchdb2
6
返回正在运行的任务列表。
获取群集设置
$ pip install couchdb2
7
返回节点或群集的状态。
couchdb版本>;=2.0。
设置群集设置
$ pip install couchdb2
8
将节点配置为单个节点、作为群集的一部分或完成群集。
couchdb版本>;=2.0。
获得会员资格
$ pip install couchdb2
9
返回有关作为群集一部分的节点的数据。
couchdb版本>;=2.0。
设置复制
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()0
请求、配置或停止复制操作。
获取调度程序作业
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()1
获取复制作业列表。
couchdb版本>;=2.0。
获取计划程序文档
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()2
获取有关复制文档的信息。
couchdb版本>;=2.0。
获取节点状态
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()3
返回正在运行的服务器的统计信息。
couchdb版本>;=2.0。
获取节点系统
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()4
返回正在运行的服务器的各种系统级统计信息。
couchdb版本>;=2.0。
数据库
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()5
与命名的couchdb数据库的接口。
如果check
为true,则在数据库不存在时引发notfounderror。
_结构
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()6
返回couchdb数据库的名称。
_长度
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()7
返回数据库中的文档数。
_包含
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()
8
数据库中是否存在具有给定ID的文档?
_国际热核电站
importcouchdb2server=couchdb2.Server()# Arguments required according to local setupdb=server.create('test')doc1={'_id':'myid','name':'mydoc','level':4}db.put(doc1)doc=db['myid']assertdoc==doc1doc2={'name':'another','level':0}db.put(doc2)print(doc2)# {'_id': '66b5...', '_rev': '1-f3ac...', 'name': 'another', 'level': 0}db.put_design('mydesign',{"views":{"name":{"map":"function (doc) {emit(doc.name, null);}"}}})result=db.view('mydesign','name',key='another',include_docs=True)assertlen(result)==1print(result[0].doc)# Same printout as above, using OrderedDictdb.destroy()
9
返回数据库中所有文档的迭代器。
_获取项目
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)0
返回具有给定ID的文档。
存在
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)1
数据库是否存在?
检查
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)2
如果数据库不存在,则引发notfounderror。
创建
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)3
创建数据库。
销毁
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)4
删除数据库及其所有内容。
获取信息
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)5
返回包含数据库信息的词典。
获取安全性
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)6
返回包含数据库安全信息的词典。
设置安全性
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)7
设置数据库的安全信息。
紧凑型
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)8
通过重写磁盘数据库文件压缩couchdb数据库 以及删除旧版本的文档。
如果finish
为true,则仅在压缩完成时返回。
此外,如果已定义,则调用函数回调(秒)
。
每秒钟直到压实完成。
紧凑型设计
server=Server(href='http://localhost:5984/',username=None,password=None,use_session=True)9
压缩与命名设计文档关联的视图索引。
查看"清除"
server.version0
由于中的视图更改,删除不必要的视图索引文件 数据库的设计文档。
获取
server.version1
返回具有给定ID的文档,如果找不到,则返回默认值。
放置
server.version2
插入或更新文档。
如果文档已经在数据库中,则必须 出现在文档中;其值将被更新。
如果文档不包含项目\u id
,则将添加一个
具有Uuid4值的。还将添加\u rev
项。
删除
server.version3
删除文档。
获取设计
server.version4
返回数据库的设计文档。
couchdb版本>;=2.2。
获取设计
server.version5
获取指定的设计文档。
放置设计
server.version6
以给定的名称插入或更新设计文档。
如果现有设计文件相同,则不采取任何措施 返回false,否则更新文档并返回true。
如果rebuild
为true,则在更新后强制重新生成视图索引。
这可能需要一些时间。
文档示例:
server.version7
更多信息:http://docs.couchdb.org/en/latest/api/ddoc/common.html" rel="nofollow">http://docs.couchdb.org/en/latest/api/ddoc/common.html
视图
server.version8
返回一个包含
属性 返回数据库中所有索引的列表。 couchdb版本>;=2.0。 存储芒果索引规范。仅限CouchDB v2.x。 返回包含项 couchdb版本>;=2.0。 根据Mango索引选择器选择文档。 返回一个字典,其中包含项行
中的对象(列表)。row
获取索引
server.version
9
放置索引
server.user_context
0
字段
是要索引的字段列表。ddoc
是设计文档名。如果没有给出,则生成。name
是索引的名称。如果没有给出,则生成。选择器
是部分筛选器选择器,可以省略。id
的字典(设计文档名称;sic!),
名称
(索引名称)和结果
(创建
或存在
)。查找
server.user_context
1
docs
,warning
,execution\u stats
以及书签
couchdb版本>;=2.0。
解释
server.user_context2
返回查询正在使用的索引的信息。
couchdb版本>;=2.0。
获取附件
server.user_context3
返回包含附件内容的类文件对象。
放置附件
server.user_context4
content
是字符串或类似文件的对象。
返回文档的新修订版。
输入doc
中的修订未被更改。
如果没有文件名,则尝试从内容对象获取文件名。
删除附件
server.user_context5
删除附件。返回文档的新修订版。
输入doc
中的修订未被更改。
转储
server.user_context6
将整个数据库转储到tar文件。
如果已定义,则调用函数回调(ndocs,nfiles)
。
每100份文件。
如果文件路径以.gz
结尾,则tar文件是gzip压缩的。
每个版本的文件已保存。
返回一个元组(ndocs,nfiles)
。
松开
server.user_context7
加载tar文件,该文件必须由dump
生成
如果已定义,则调用函数回调(ndocs,nfiles)
。
每100份文件。
注意:文档只是添加到数据库中,忽略
\u rev
项目。
返回一个元组(ndocs,nfiles)
。
couchdb2异常
server.user_context8
基本couchdb2异常。
未找到错误
server.user_context9
不存在此类实体。
错误请求错误
str(server)0
无效请求;名称、正文或标题错误。
创建错误
str(server)1
无法创建实体;它已经存在。
修订错误
str(server)2
要保存的文档中的\u rev
项错误或丢失。
授权错误
str(server)3
当前用户无权执行此操作。
内容类型错误
str(server)4
请求中的内容类型值不正确。
服务器错误
str(server)5
内部服务器错误。
查看结果
从db.view()
返回的对象
str(server)6
属性:
行
:对象的列表。偏移量
:用于行集合的偏移量。总行数
:选定的总行数。
_长度
str(server)7
返回视图结果中的行数。
_国际热核电站
str(server)
8
返回视图结果中所有行的迭代器。
_获取项目
str(server)9
返回索引视图结果行。
json
len(server)0
以类似json的表示形式返回视图结果数据。
行< /H2>
在viewResult列表属性行中返回的命名元组对象
len(server)1
id
:文档的标识符(如果有)。键
:索引行的键。值
:索引行的值。文档
:文档(如果有)。
ID
字段号0的别名
密钥< /H3>
字段编号1的别名
值
字段2的别名
DOC
字段3的别名
实用功能
读取设置
len(server)2
从json格式文件读取设置查找。 如果给定了设置,则返回它的更新副本, 否则,复制默认设置、更新并返回。
命令行工具
该模块也是与couchdb服务器交互的命令行工具。
使用pip
安装它将设置命令couchdb2
命令行工具的设置从以下源更新, 按给定顺序(如果存在):
- 默认值为
len(server)
3 - 读取json文件
~/.couchdb2
(在主目录中)。 - 读取json文件
settings.json
(在当前工作目录中)。 - 从命令行选项
--settings filepath提供的json文件中读取
选项
要打印可用的命令选项:
len(server)4