使用 python 操作 mongodb 常用的操作
pymongo 的安装命令 pip install pymongo.
import pymongo
数据库及集合查询(创建)
- 连接数据库
- 查询数据库中的数据库
- 查询数据库中的集合
- 创建数据库和集合只需要直接引用即可,如果不存在则自动创建。但是只有插入内容才会显示
myclient = pymongo.MongoClient("mongodb://localhost:27017")
dblist = myclient.list_database_names()
print(dblist)
if 'runoob' in dblist:
myclient.drop_database("runoob")
print("runoob db deleted.")
mydb = myclient["runoob"] # 不存在自动创建数据库
collist = mydb.list_collection_names()
print(collist)
myCol = mydb["site"] # 不存在自动创建集合
数据插入及查询
isert_one()和insert_many()函数分别用来插入一条或者多条文档,对应的返回值的inserted_id和inserted_ids返回插入文档的_id值。- 插入时们也可以手动的指定
_id属性。 - 查询使用的函数为
find_one()和find()。注意使用find()函数返回的是一个指针(cursor),而find_one()返回的是字典。 - 查询中的表达式和 mongodb shell 中的一样,具体查询方法可以参考 mongodb 查询语法。
mydict = {"name":"RUNOOB","alexa":"10000","url":"https://www.runoob.com"}
x = myCol.insert_one(mydict)
print(x)
print("inserted id is ",x.inserted_id)
mylist = [
{ "name": "Taobao", "alexa": "100", "url": "https://www.taobao.com" },
{ "name": "QQ", "alexa": "101", "url": "https://www.qq.com" },
{ "name": "Facebook", "alexa": "10", "url": "https://www.facebook.com" },
{ "name": "知乎", "alexa": "103", "url": "https://www.zhihu.com" },
{ "name": "Github", "alexa": "109", "url": "https://www.github.com" }
]
x = myCol.insert_many(mylist)
print("inserted ids are ",x.inserted_ids)
mylist2 = [
{ "_id": 1, "name": "RUNOOB", "cn_name": "菜鸟教程"},
{ "_id": 2, "name": "Google", "address": "Google 搜索"},
{ "_id": 3, "name": "Facebook", "address": "脸书"},
{ "_id": 4, "name": "Taobao", "address": "淘宝"},
{ "_id": 5, "name": "Zhihu", "address": "知乎"}
]
try:
x = myCol.insert_many(mylist2)
print("inserted ids are ",x.inserted_ids)
except:
pass
x = myCol.find_one()
print('x type is ',type(x))
print(x)
docs = myCol.find()
print('docs type is ',type(docs))
for v in docs:
print(v)
# 查询指定字段数据,除 _id 字段以外,其他字段要么全是 1,要么全是 0
for x in myCol.find({},{"_id":0,"name":1,"alexa":1}):
print(x)
print('---------')
# 查询 name 字段第一个字母 ASCII 值大于 H 的数据
myquery = {"name":{"$gt":"H"}}
myDocs = myCol.find(myquery)
for v in myDocs:
print(v)
print('---------')
# 正则表达式查询 name 以 R 开头的文档
myQuery = {"name":{"$regex":"^R"}}
myDocs = myCol.find(myQuery)
for v in myDocs:
print(v)
print('---------')
# 指定返回查询结果的数目
for x in myCol.find().limit(3):
print(x)
数据的修改及删除
- 修改数据使用
update_one()和update_many()。返回结果的modified_count属性给出修改文档个数,matched_count给出插值匹配个数。 - 删除数据使用
delete_one()和delete_many()。返回结果的deleted_count属性给出删除文档个数。
myQuery = {"alexa":"10000"}
newValue = {"$set":{"alexa":"12345"}}
x = myCol.update_one(myQuery,newValue)
print(x.modified_count,x.matched_count)
for v in myCol.find():
print(v)
print('---------')
myQuery = {"name":{"$regex":"^F"}}
newValue = {"$set":{"alexa":"123"}}
x = myCol.update_many(myQuery,newValue)
print(x.modified_count,x.matched_count)
myQuery = {"name":"Taobao"}
x = myCol.delete_one(myQuery)
print(x.deleted_count)
for v in myCol.find():
print(v)
print('---------')
myQuery = {"name":{"$regex":"^F"}}
x = myCol.delete_many(myQuery)
print(x.deleted_count)
使用 python 操作 mongodb 常用的操作的更多相关文章
- 真香!Python十大常用文件操作,轻松办公
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- python中 列表常用的操作
列表可以装大量的数据,不限制数据类型,表示方式:[]:列表中的元素用逗号隔开. lst = [] #定义一个空列表 lst = ["Tanxu",18,"女", ...
- python txt文件常用读写操作
文件的打开的两种方式 f = open("data.txt","r") #设置文件对象 f.close() #关闭文件 #为了方便,避免忘记close掉这个文件 ...
- python操作mongodb之基础操作
#coding:utf-8 __author__ = 'hdfs' import pymongo from pymongo import MongoClient client = MongoClien ...
- 通过python调用jenkins 常用api操作
# -*- coding: utf-8 -*- import jenkins class TestJenkins(object): def __new__(cls, *args, **kwargs): ...
- 【转】通过python调用jenkins 常用api操作
原:https://www.cnblogs.com/L-O-N/p/11608220.html # -*- coding: utf- -*- import jenkins class TestJenk ...
- Linux操作_常用命令操作练习
1,新键一个用户,该用户名为自己姓名首字母缩写+学号最后2位组成(如王东,学号最后2位为18,则该用户名为wd18),为该用户设置密码,并将其加到users组:将该用户的相关信息更改(要求:Name为 ...
- php操作mongodb的常用函数
连接mongodb: $mongoObj = new Mongo("127.0.0.1" , array( 'connect'=>true, 'persist'=>tr ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
随机推荐
- Linq to SQL -- Select、Distinct和Count、Sum、Min、Max、Avg
Select/Distinct操作符 适用场景:o(∩_∩)o… 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...
- Linux基本指令
常用目录文件作用 - / 根目录 - /bin 命令保存目录(普通用户就可以读取的命令) - /boot 启动目录,启动相关文件 - /dev 设备文件保存目录 - /etc ...
- Oracle的rollup、cube、grouping sets函数
转载自:https://blog.csdn.net/huang_xw/article/details/6402396 Oracle的group by除了基本用法以外,还有3种扩展用法,分别是rollu ...
- javascript 数组的简单应用
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- PostgreSQL函数(存储过程)----笔记
PostgreSQL 函数也称为 PostgreSQL 存储过程. PostgreSQL 函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程 ...
- 编译安装Python3
转发https://www.cnblogs.com/resn/p/10135953.html 编译安装Python3 安装依赖 yum install -y ncurses-libs zlib-dev ...
- PHP+Ajax实现文件上传功能
前端显示界面: 1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Sql Server数据库之触发器
阅读目录 一:触发器的优点 二:触发器的作用 三:触发器的分类 四:触发器的工作原理 五:创建触发器 六:管理触发器 概念: 触发器(trigger)是SQL server 提供给程序员和数据分析 ...
- setCapture 使用方法
setCapture 可以捕获到 移动到浏览器外的鼠标事件. 例如拖动过程中,即使鼠标移动到了浏览器外,拖动程序依然可以执行! 作用就是把 把鼠标事件 捕获到 当前文档指定的对象! setCaptur ...
- Java8自定义函数式编程接口和便捷的引用类的构造器及方法
什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equal),不算是函数式接口的方法. 被@FunctionalInterfa ...