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. Nullable<DateTime> DateTime? 格式转换问题 tostring()

    解决方案: DateTime? dt2 = DateTime.Now; dt2.GetValueOrDefault().ToString("yyyy-MM-dd"); 控制器代码: ...

  2. in和hasOwnProperty的区别

    两者都代表查看某个属性是不是对象自己的,返回布尔值 in判断的是对象的所有属性,包括对象实例及其原型的属性 hasOwnProperty则是判断对象实例的是否具有某个属性

  3. 058、flannel概述(2019-03-27 周三)

    参考https://www.cnblogs.com/CloudMan6/p/7412150.html   flannel 是 CentOS开发的容器网络解决方案.flannel 为每个host分配一个 ...

  4. android的android.intent.action.MAIN

    当我们使用Android Studio创建一个工程并生成一个Activity时,经常可以在清单文件中看到如下的代码 android.intent.action.MAIN:决定应用的入口Activity ...

  5. MQTT学习笔记

    因为工作需要,了解了一下MQTT.顺便记下来,现在还不会用. 一.概述 MQTT(Message Queuing Telemetyr Transport  消息队列遥测传输协议):基于发布/订阅(Pu ...

  6. 网页浏览 infinite scroll效果知识

    infinite scroll 类似一些网站, 例如京东搜索商品, 浏览到最后一页,自动加载新的商品. 一则可以加快首页响应速度, 二则减轻带宽和服务器荷载. 这么多商品信息一次性返回给客户端也是不可 ...

  7. 传入mybatis的xml为Long型时报There is no getter for property named 'VARCHAR' in

    修改前   <insert id="insert" parameterType="com.taotao.pojo.TbContent" >    i ...

  8. HTTP访问控制(CORS)

    当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求.   比如,站点 http://domain-a.com 的某 HTML 页面通过 <img ...

  9. intptr_t 指针

    对于64为系统: typedef  signed char  int8_t; typedef short int int16_t; typedef int int32_t; # if __WORDSI ...

  10. PHP设计——单例模式与工厂模式

    一.单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的.所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为pri ...