pymongo增删查改以及条件查询
---恢复内容开始---
下载Pymongo
pip install pymongo
pip install pymongo==x.x.x指定下载版本
连接数据库
from pymongo import MongoClient
client = MongoClient()#连接默认的主机和端口
client = MongoClient('localhost', )#连接到localhost的27017端口
client = MongoClient('mongodb://localhost:27017/')#使用MongoDB URI模式
db = client.test#连接到test数据库
db = client['test']
collection = db.python_collection#连接到python_collection表
collection = db['python_collection']
增删改查操作
#!/usr/bin/python3
#coding=utf-8 import datetime
from pymongo import MongoClient
client = MongoClient() db = client.pythondb post = {"author": "Maxsu",
"text": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()} posts = db.posts
post_id = posts.insert_one(post).inserted_id
print ("post id is ", post_id)
Insert_one()插入文档
#!/usr/bin/python3
#coding=utf-8 import datetimefrom pymongo import MongoClient client = MongoClient() db = client.pythondb
'''
post = {"author": "Maxsu",
"text": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()}
'''
posts = db.posts
#post_id = posts.insert_one(post).inserted_id
#print ("post id is ", post_id) print(posts.find_one())
# 条件chaxun
result = post.find({'字段名':{'mongodb条件查询的筛选器':{数据}}})
例子
result = post.find({'author':{'$in':['abc', 'def']}})
查询post中author字段等于abc以及def的所有数据
将'$in'替换成其他的条件查询筛选器
find_one()查询单个文档
import datetime
import pprint
from pymongo import MongoClient client = MongoClient() db = client.pythondb new_posts = [{"_id": 1000,
"author": "Curry",
"text": "Another post!",
"tags": ["bulk", "insert"],
"date": datetime.datetime(2017, 11, 12, 11, 14)},
{"_id": 1001,"author": "Maxsu",
"title": "MongoDB is fun",
"text": "and pretty easy too!",
"date": datetime.datetime(2019, 11, 10, 10, 45)}] posts = db.posts
result = posts.insert_many(new_posts)
print("Bulk Inserts Result is :", result.inserted_ids)
insert_many()插入多个文档
#!/usr/bin/python3
#coding=utf-8 import datetime
import pprint
from pymongo import MongoClient client = MongoClient() db = client.pythondb posts = db.posts
for post in posts.find():
pprint.pprint(post)
find()查询多个文档
count()计数
sort()排序
create_index()创建索引
>>> for doc in db.test.find():
... print(doc)
...
{u'x': 1, u'_id': 0}
{u'x': 1, u'_id': 1}
{u'x': 1, u'_id': 2}
>>> result = db.test.update_one({'x': 1}, {'$inc': {'x': 3}})
>>> result.matched_count
1
>>> result.modified_count
1
>>> for doc in db.test.find():
... print(doc)
...
{u'x': 4, u'_id': 0}
{u'x': 1, u'_id': 1}
{u'x': 1, u'_id': 2}
update_one
>>> for doc in db.test.find():
... print(doc)
...
{u'x': 1, u'_id': 0}
{u'x': 1, u'_id': 1}
{u'x': 1, u'_id': 2}
>>> result = db.test.update_many({'x': 1}, {'$inc': {'x': 3}})
>>> result.matched_count
3
>>> result.modified_count
3
>>> for doc in db.test.find():
... print(doc)
...
{u'x': 4, u'_id': 0}
{u'x': 4, u'_id': 1}
{u'x': 4, u'_id': 2}
update_many
>>> db.test.count({'x': 1})
3
>>> result = db.test.delete_one({'x': 1})
>>> result.deleted_count
1
>>> db.test.count({'x': 1})
2
delete_one
>>> db.test.count({'x': 1})
3
>>> result = db.test.delete_many({'x': 1})
>>> result.deleted_count
3
>>> db.test.count({'x': 1})
0
delete_many
显式创建集合
db.create_collection("test", validator={"name": {"$type": "string"})
如果要验证的类型为int的话,需要使用NumberInt()函数转换要插入的值,否则通过。
更多内容查阅pymongo官方文档
pymongo增删查改以及条件查询的更多相关文章
- day08 外键字段的增删查改
day08 外键字段的增删查改 今日内容概要 外键字段的增删查改 正反向查询的概念 基于对象的跨表查询(子查询) 基于双下划线的跨表查询(连表操作) 聚合查询与分组查询 F查询和Q查询 前提准备 cl ...
- SSH框架的多表查询和增删查改 (方法一)上
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==> http://www.cnblogs.com/zhu520/p/7772823.html 因为最近在做Android 练习的 ...
- SSH框架的多表查询和增删查改 (方法一)中
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html 这边文章是接的刚刚前一遍的基础上敲的 ...
- SSH框架的多表查询(方法二)增删查改
必须声明本文章==>http://www.cnblogs.com/zhu520/p/7773133.html 一:在前一个方法(http://www.cnblogs.com/zhu520/p ...
- JavaWeb实现增删查改(图书信息管理)——之查询
关于此次CRUD所需要的jar包,本人把文件放在了百度网盘,需要的自行去下载: 链接:https://pan.baidu.com/s/1Pqe88u6aPaeVjjOq1YFQ-w 提取码:pim ...
- 8天学通MongoDB——第二天 细说增删查改
原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html 看过上一篇,相信大家都会知道如何开启mongodb了 ...
- EasyUI的增删查改(后台ASP.NET)
转自:http://www.cnblogs.com/dedeyi/archive/2013/04/22/3035057.html 某某人曾经跟我说,你们做系统不就是增删查改吗. 是啊,很多时候我们就是 ...
- 极极极极极简的的增删查改(CRUD)解决方案
去年这个时候写过一篇全自动数据表格的文章http://www.cnblogs.com/liuyh/p/5747331.html.文章对自己写的一个js组件做了个概述,很多人把它当作了一款功能相似的纯前 ...
- Sql Server的艺术(一) 视图的增删查改
视图是从一个或者多个表中查询数据的另一种方式.利用视图可以集中.简化定制数据库,同时还能保障安全. 视图其结构和数据是建立在对应的查询基础上的.和表一样,视图也是包括几个被定义的数据列和多个数据行,但 ...
随机推荐
- python+msf 制作 windows远控
最近分析的一个远控,后发现是meterpreter rever http shell,文件是个打包的python(打包成exe),感谢wstone的指导~ 创建dll ./msfpayload win ...
- Java相关框架
框架 类型 设计(个人理解) HK2 自动注入框架 Jersey RESTful Jetty HTTP服务 Retrofit HTTP客户端 ActiveMQ 消息组件 主题.队列 Redis K-V ...
- 如何优雅地使用minicom
minicom简介 安装 minicom是linux下一款常用的串口调试工具.ubuntu环境下,使用如下命令安装 sudo apt-get install minicom 配置 使用前需要进行配置, ...
- docker常用命令,安装常用实例,一步式安装mysql
刚来公司,跟公司测试环境项目的服务器,环境是linux Centos7.2 所有的tomcat都挂载在docker容器下,所以也就学习了一些简单的docker指令(学习之前请了解什么是docker, ...
- maven的项目管理方面细节
1.1 Maven 1.依赖管理.jar包.工程之间的依赖. 2.项目构建.实现项目的一步构建. 3.工程聚合.工程继承.工程依赖. 1.2 Maven的工程类型: 1.war包工程 2. ...
- 基于iscroll实现下拉和上拉刷新
在原生APP的开发中,有一个常见的功能,就是下拉刷新的功能,这个想必大家都是知道的,但是原生APP的开发,有一个很大的问题就是,你每次更新一些功能,就要用户重新下载一次版本,尤其是在iOS系统中,新版 ...
- java Class.forName()
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识.这项信息纪录了每个对象所属的类. 虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class ...
- KVM(四) I/O 设备直接分配和 SR-IOV
(4):I/O 设备直接分配和 SR-IOV 本文将分析 PCI/PCIe 设备直接分配(Pass-through)和 SR-IOV, 以及三种 I/O 虚拟化方式的比较. 1. PCI/PCI-E ...
- python的一致性(1)sorted和len
每个语言,都有自己的特性,而一致性,是python语言特性重要的一个环节. 比如排序,我们不是aaa.sort(),而是 sorted(aaa),比如len,不是aaa.length(),而是len( ...
- 如何在qt中使用中文输入法
参考: http://blog.csdn.net/u013812682/article/details/52101088 dpkg -L fcitx-frontend-qt5 到qt安装目录里find ...