python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

文档http://api.mongodb.com/python/current/api/index.html
http://api.mongodb.com/python/current/api/pymongo/collection.html

1.安装python操作mongodb的程序
pip install pymongo

验证是否安装成功

C:\Users\ajie>python
Python 3.5. (v3.5.2:4def2a2901a5, Jun , ::) [MSC v. bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymongo

连接数据库

方式1:简写
>>> from pymongo import MongoClient
>>> client = MongoClient()

方式2:指定端口和地址
>>> client2 = MongoClient('localhost', 27017)

方式3:使用URI
>>> client3 = MongoClient('mongodb://localhost:27017/')

获取简单信息

>>> dir(client)
['HOST', 'PORT', '_BaseObject__codec_options', '_BaseObject__read_concern', '_BaseObject__read_preference', '_BaseObject__write_concern', '_MongoClient__all_credentials', '_MongoClient__cursor_manager', '_MongoClient__default_database_name', '_MongoClient__index_cache', '_MongoClient__index_cache_lock', '_MongoClient__kill_cursors_queue', '_MongoClient__lock', '_MongoClient__options', '_MongoClient__reset_server', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_cache_credentials', '_cache_index', '_cached', '_constructor_args', '_database_default_options', '_event_listeners', '_get_socket', '_get_topology', '_is_writable', '_kill_cursors_executor', '_process_periodic_tasks', '_purge_credentials', '_purge_index', '_repr_helper', '_reset_on_error', '_reset_server_and_request_check', '_send_message_with_response', '_server_property', '_socket_for_reads', '_socket_for_writes', '_topology', '_topology_settings', 'address', 'arbiters', 'close', 'close_cursor', 'codec_options', 'database_names', 'drop_database', 'event_listeners', 'fsync', 'get_database', 'get_default_database', 'is_locked', 'is_mongos', 'is_primary', 'kill_cursors', 'local_threshold_ms', 'max_bson_size', 'max_idle_time_ms', 'max_message_size', 'max_pool_size', 'max_write_batch_size', 'min_pool_size', 'next', 'nodes', 'primary', 'read_concern', 'read_preference', 'secondaries', 'server_info', 'server_selection_timeout', 'set_cursor_manager', 'unlock', 'write_concern']
>>> client.PORT >>> client.database_names()
['admin', 'config', 'local', 'students']

Mongodb关闭了还可以再次连接,是因为内部有连接池

使用pymongo操作mongo数据库的增删改查:

#coding:utf-8
from datetime import datetime
from pymongo import MongoClient class MongoTest(object):
def __init__(self):
self.client = MongoClient()
self.db = self.client['blog'] def add_one(self):
'''添加单条数据''' # 造数据
# for i in range(3):
# post = {
# 'title':"人民代表大会提出将提高个税起征点"+str(i),
# 'content':"非常好的建议,有利于民生"+str(i),
# 'x':i,
# 'create_at': datetime.now()
# }
# self.db.blog.posts.insert_one(post) # 添加单条数据
post = {
'title':"人民代表大会提出将提高个税起征点",
'content':"非常好的建议,有利于民生",
'x':18,
'create_at': datetime.now()
}
return self.db.blog.posts.insert_one(post) def get_one(self):
'''获取单条数据'''
return self.db.blog.posts.find_one() def get_more(self):
'''获取多条数据'''
return self.db.blog.posts.find() def update(self):
''' 修改数据 ''' # 将x为1的文档改为x+3
# res = self.db.blog.posts.update_one({'x':1},{'$inc':{'x':3}})
# print(res.matched_count) # 将所有的值都增加20
return self.db.blog.posts.update_many({}, {'$inc':{'x':20}}) def delete(self):
'''删除数据''' # 删除x为1的1条数据
# res = self.db.blog.posts.delete_one({'x':0})
# print(res.deleted_count) # 删除x为1的多条数据
res = self.db.blog.posts.delete_many({'x':1})
print(res.deleted_count) def main():
mon = MongoTest()
res = mon.add_one()
# print(res.inserted_id) # res = mon.get_one()
# print(res['title']) # res = mon.get_more()
# for i in res:
# print(i['title']) # res = mon.update()
# print(res.matched_count) mon.delete() if __name__ == "__main__":
main()

python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查的更多相关文章

  1. python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查

    Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...

  2. MySQL数据库初识、下载使用(针对库、表、记录的增删改查)

    今日内容概要 数据演变史 数据库软件的本质 MySQL简介 下载与安装 基本配置 基本SQL语句 内容详细 1.数据演变史 # 1.单独的文本文件 没有固定的存放位置和格式 文件名:user.txt ...

  3. MongoDB 数据库创建删除、表(集合) 创建删除、数据增删改查

    使用数据库.创建数据库 use student 如果真的想把这个数据库创建成功,那么必须插入一个数据. 数据库中不能直接插入数据,只能往集合(collections)中插入数据.不需要专门创建集合,只 ...

  4. 02 . Mysql基础操作及增删改查

    SQL简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发. SQL语句四大 ...

  5. python连接集群mongodb,封装增删改查

    1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...

  6. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  7. python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作

    python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...

  8. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...

  9. Python操作三大主流数据库☝☝☝

    Python操作三大主流数据库☝☝☝ Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数 ...

  10. Python操作三大主流数据库✍✍✍

    Python操作三大主流数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库, ...

随机推荐

  1. 解析ArcGis的标注(一)——先看看分数式、假分数式标注是怎样实现的

    该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. ArcGis的标注表达式支持VBScrip ...

  2. Entity Framework 6.0 常见异常及解决办法

    Ø  简介 本文主要记录 EF(Entity Framework) 在平时的开发中可能遇到的异常,以及应该如何去解决. 1.   System.InvalidOperationException 1) ...

  3. IntelliJ IDEA 创建Web项目(全教程)

    说明:IntelliJ IDEA 版本为14.JDK 版本为1.7tomcat 版本为apache-tomcat-7.0.70 注:在创建过程中注意相关软件版本位数的问题.32位,64位的软件混搭会导 ...

  4. oracle 窗口函数 (keep)

    看到很多人对于keep不理解,这里解释一下! Returns the row ranked first using DENSE_RANK2种取值:DENSE_RANK FIRSTDENSE_RANK  ...

  5. Coursera, Deep Learning 4, Convolutional Neural Networks, week3, Object detection

    学习目标 Understand the challenges of Object Localization, Object Detection and Landmark Finding Underst ...

  6. 【提取元素的值 】【追加文本append】【删除文本remove】【class的操作】【读取元素的宽度,高度】

    1.取值 $("#test").text()                                    //取id=test里面的文字 $("#test&qu ...

  7. proxysql 系列 ~ 读写分离核心功能

    一 相关表介绍 1 mysql_user 列表配置    1 username && password 账号密码    2 default_hostgroup 默认的组ID2 mysq ...

  8. mysql 原理 ~ 索引通说

    简介: 来说说索引吧目的:为了加快数据库的数据查找速度,索引应用而生基础知识基本定义  1 遍历 所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次 ...

  9. 搜索jar包 出现很多 Artifact Id相同 但Group Id不同 的包

    举例:将传统本地 javassit-3.17.1-GA.jar包 改成maven引用,pom中 ---Add 输入javassit 搜索 这时候会搜索出超级多 Artifact Id相同 但Group ...

  10. Xml的转义字符--约束-xml解析器

    XML解析器:Dom适合增删改查(crud),缺点就是内存消耗大:  Sax:内存消耗非常小,解析速度快,但是不适合增删改: