pymongo操作mongodb
此验证中只开启两个mongodb节点,可以连接任意节点,以下操作不涉及读写,不涉及连接那个节点
mongodb连接:
from pymongo import MongoReplicaSetClient
client = MongoReplicaSetClient('mongodb://test:caesar_123@196.168.1.112:27017/test',replicaset='spock')
rs.status
在command中输出如下:
spock:SECONDARY> rs.status()
{
"set" : "spock",
"date" : ISODate("2018-10-07T15:27:19.877Z"),
"myState" : 2,
"term" : NumberLong(28),
"syncingTo" : "196.168.1.112:27017",
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 2,
"name" : "196.168.1.111:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1457,
"optime" : {
"ts" : Timestamp(1538924592, 1),
"t" : NumberLong(28)
},
"optimeDate" : ISODate("2018-10-07T15:03:12Z"),
"syncingTo" : "196.168.1.112:27017",
"configVersion" : 25332,
"self" : true
},
{
"_id" : 3,
"name" : "196.168.1.112:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1456,
"optime" : {
"ts" : Timestamp(1538924592, 1),
"t" : NumberLong(28)
},
"optimeDate" : ISODate("2018-10-07T15:03:12Z"),
"lastHeartbeat" : ISODate("2018-10-07T15:27:18.350Z"),
"lastHeartbeatRecv" : ISODate("2018-10-07T15:27:19.538Z"),
"pingMs" : NumberLong(0),
"electionTime" : Timestamp(1538924591, 1),
"electionDate" : ISODate("2018-10-07T15:03:11Z"),
"configVersion" : 25332
}
],
"ok" : 1
}
在pymongo中,使用client.admin.command('replSetGetStatus‘)输出见下:
(Pdb) client.admin.command("replSetGetStatus")
{u'term': 28L, u'set': u'spock', u'ok': 1.0, u'heartbeatIntervalMillis': 2000L, u'myState': 1, u'members': [{u'uptime': 1087, u'configVersion': 25332, u'optime': {u'ts': Timestamp(1538924592, 1), u't': 28L}, u'name': u'196.168.1.111:27017', u'pingMs': 0L, u'optimeDate': datetime.datetime(2018, 10, 7, 15, 3, 12), u'syncingTo': u'196.168.1.112:27017', u'state': 2, u'health': 1.0, u'stateStr': u'SECONDARY', u'lastHeartbeatRecv': datetime.datetime(2018, 10, 7, 15, 21, 11, 981000), u'_id': 2, u'lastHeartbeat': datetime.datetime(2018, 10, 7, 15, 21, 11, 142000)}, {u'uptime': 6416, u'configVersion': 25332, u'optime': {u'ts': Timestamp(1538924592, 1), u't': 28L}, u'name': u'196.168.1.112:27017', u'self': True, u'optimeDate': datetime.datetime(2018, 10, 7, 15, 3, 12), u'electionTime': Timestamp(1538924591, 1), u'state': 1, u'health': 1.0, u'stateStr': u'PRIMARY', u'_id': 3, u'electionDate': datetime.datetime(2018, 10, 7, 15, 3, 11)}], u'date': datetime.datetime(2018, 10, 7, 15, 21, 12, 55000)}
primary ip
在pymongo中,使用client.primary输出元组见下:
(Pdb) client.primary
('196.168.1.112', 27017)
(Pdb) client.secondaries
set([(u'196.168.1.111', 27017)])
db.getCollectionInfos
spock:SECONDARY> db.getCollectionInfos()
[
{
"name" : "meter",
"options" : { }
},
{
"name" : "resource",
"options" : { }
}
]
在pymongo中,使用collections = db.list_collections()返回pymongo.command_cursor.CommandCursor对象,遍历每个collection信息,都为字典。
{u'name': u'resource', u'options': {}}
{u'name': u'meter', u'options': {}}
collection增删
(Pdb) flag = db.drop_collection('resource')
(Pdb) flag
{u'ns': u'test.resource', u'ok': 1.0, u'nIndexesWas': 1}
(Pdb) flag = db.create_collection('resource')
(Pdb) flag
Collection(Database(MongoReplicaSetClient(host=['196.168.1.112:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='spock'), u'test'), u'resource')
(Pdb) flag = db.create_collection('resource')
*** CollectionInvalid: collection resource already exists
( Pdb) db.drop_collection('meter')
{u'ns': u'test.meter', u'ok': 1.0, u'nIndexesWas': 4}
(Pdb) db.drop_collection('meter')
{u'code': 26, u'ok': 0.0, u'errmsg': u'ns not found'}
创建capeed类型collection
db.create_collection('meter', capped=True, size=5242880, max=5000)
pymongo操作mongodb的更多相关文章
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- Python 使用pymongo操作mongodb库
Python 使用pymongo操作mongodb库 2016-12-31 21:55 1115人阅读 评论(0) 收藏 举报 分类: - - - Python(10) 版权声明:本文为博主原创文 ...
- MongoDB学习【四】—pymongo操作mongodb数据库
一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...
- python 通过pymongo操作mongoDB执行sort
在mongo shell 中对数据进行排序操作的时候 db.getCollection('ANJUKE_PRICE').find({},{'id':1,'_id':0}).sort({'id':1}) ...
- Python操作MongoDB看这一篇就够了
MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档.数组及文档数组,非常灵活.在这一节中,我们就来看 ...
- 8.3 操作MongoDB数据库
一项权威调查显示,在大数据时代软件开发人员必备的十项技能中MongoDB数据库名列第二,仅次于HTML5.MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(Not Only SQL ...
- python操作mongoDB(pymongo的使用)
pymongo操作手册 连接数据库 方法一(推荐) import pymongo client = pymongo.MongoClient(host="localhost",por ...
- Python 操作 MongoDB
原文 这篇文章主要介绍了使用Python脚本操作MongoDB的教程,MongoDB作为非关系型数据库得到了很大的宣传力度,而市面上的教程一般都是讲解JavaScript的脚本操作,本文则是基于Pyt ...
- Python 操作 mongodb 数据库
原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...
随机推荐
- 转 C#实现PID控制的模拟测试和曲线绘图
C#实现PID控制的模拟测试和曲线绘图 本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...
- matlab学习(4) any 和cellfun用法
1.对于向量来说,只要包含非0元素,则返回为1: 2.对于矩阵来说,any(X)依次判断X的每一列是否为ture,返回一个含0或1的向量. 3.any(X,DIM)对X的第DIM维操作, DIM=1即 ...
- mybatis插入数据后返回对象id
1.插入的为对象,成功插入后,会返回到指定的字段id中,@Options(useGeneratedKeys=true,keyColumn="id").
- RabbitMQ 死信队列 延时
package com.hs.services.config; import java.util.HashMap; import java.util.Map; import org.springfra ...
- Android的发展历史
Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l’Isle-Adam)在1886年发表的科幻小说<未来夏娃>(L’ève future)中.他将外表 ...
- docker 进程监控 Dumb-Init进程信号处理 --转自https://blog.csdn.net/tiger435/article/details/54971929
随着docker及Kubernetes技术发展的越来越成熟稳定,越来越多的公司开始将docker用于生产环境的部署,相比起物理机上直接部署,多了一层docker容器的环境,这就带来一个问题:进程信号接 ...
- VS2017 对com组件调用返回错误hresult e_fail
解决步骤如下: 第一步: 第二步:进入VS2017 安装目录,如下(路径仅供参考) 执行:gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dl ...
- 使用nrm工具高效地管理npm源
在使用npm时,官方的源下载npm包会比较慢,国内我们基本使用淘宝的源,如果公司内部搭建了一套npm私有仓库,公司内部的源不可能把npm官方的npm包都同步,所以需要切换npm源.如果使用npm/cn ...
- Delphi 7升级到XE2的字符串问题
原来的Delphi中有两种字符串:AnsiString和WideString.默认的string即AnsiString.而在Delphi 2009中,新增加了一种UnicodeString.为什么不沿 ...
- [蓝桥杯]ALGO-188.算法训练_P0504
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,Unclear和Nuclear.Rimon和MinOR都是Anagrams. ...