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的艺术(一) 视图的增删查改
视图是从一个或者多个表中查询数据的另一种方式.利用视图可以集中.简化定制数据库,同时还能保障安全. 视图其结构和数据是建立在对应的查询基础上的.和表一样,视图也是包括几个被定义的数据列和多个数据行,但 ...
随机推荐
- alt+ F8 设置无效(转)
原文转自 https://blog.csdn.net/m372897500/article/details/7310251 具体修改方法如下: 工具-选项-环境-键盘-应用以下其他键盘映射方案,选择v ...
- UVALIVE 3486 Cells
通过入栈出栈顺序判断祖先关系 这里UVALIVE还 #include <map> #include <set> #include <list> #include & ...
- SuSE Linux10.1 网络设置以及和主机通信end
设置步骤如下: 1.首先判断VMware Bridge Protocol协议是否已经安装.在本地连接的属性中可以查看. 2.虚拟机设置为bridged 3. 虚拟机-Edit-Virtual Netw ...
- SQLAlchemy中filter()和filter_by()有什么区别
from:https://segmentfault.com/q/1010000000140472 filter: apply the given filtering criterion to a co ...
- wait(),sleep(),notify(),join()
wait()注意以下几点: 1)wait()是属于Object类的方法. 2)调用了wait()之后会引起当前线程处于等待状态. 3)将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停 ...
- 出现“error c4430缺少类型说明符-假定为int。注意C++不支持默认int
出现这种错误的原因,是因为函数没有写返回值.是在VC6.0的工程转为高版本(VS2010)的时候经常出现的; #include <stdio.h> main() { printf(&quo ...
- 【bzoj2796】 [Poi2012]Fibonacci Representation
给出一个数字,用FIB数列各项加加减减来得到. 问最少要多少个(可以重复使用) 大概试了一下,fibonacci数列的增长是很快的,大概到了90+项就超过了题目范围…… 所以每次找一个最近的fibon ...
- [ LDAP ] LDAP服务搭建及应用
ldap 搭建及应用 node1: 192.168.118.14node2: 192.168.118.25 ldap server : 192.168.118.14 1. 安装LDAP服务器 [roo ...
- Spring Boot 项目部署到本地Tomcat,出现访问路径问题
首先确定war 包没问题,把war包放在webapps目录下,访问http://localhost:8080/ + 项目名称 发现首页可以访问但css,js请求都是404,跳转页面也是404 解决方法 ...
- Selenium2+python自动化70-unittest之跳过用例(skip)【转载】
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...