使用 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 ...
随机推荐
- 1.Java
面向对象:封装,继承,多态 A组合B:那么B就可以调用A中的方法 A关联B:A中的成员变量是用B声明的 A和B的依赖关系:A中某个方法的参数是B声明的对象或者返回值类型是B的数据类型 Static方法 ...
- 基于kettle的简单HTTP接口监控
需求:监控系统中使用的所有http接口,要求简单,易用. 一般的思路也就是发送get/post请求,然后检查接口的响应结果. 如果写代码,要处理http请求,检查http响应,实现发邮件,写d ...
- python count函数
描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符串搜索的开始与结束位置. 语法 count()方法语法: str.count(sub, start= 0,e ...
- IntelliJ IDEA 设置背景图片
1.在idea中 按快捷键 Ctrl+Shift+A 出现如图 输入 Set Background Image 双击 Set Background Image 2.选择要添加的图片的路径 ...
- POC iis短文件名
__author__ = '*'# -*- coding:utf-8 -*- from lib.httpparse import httpparse def verify(protocol,ip,po ...
- 查看log日志
本地环境的的log日志 可以直接查看, 对于新手来说怎么查看正式环境下的log日志呢 1, SSH到服务器 2,cd 到logs所在目录 3, tail -f 对应日志名字
- 阿里云安装mysql后查看不到初始密码的解决办法
在阿里云安装mysql后用grep 'A temporary password' /var/log/mysqld.log命令查看MySQL初始密码,毛线都没有看到,然后直接到/var/log/mysq ...
- FireDAC 连接SQL Server一些要注意的地方(转)
TFDConnection: FetchOptions.Mode 设置为fmAll, 返回全部结果, 否则默认只返回前50条, 效果与open以后再执行FetchAll一样 Specifies how ...
- 关于第一个launcher开发笔记
本笔记主要记录阅读关于launcher代码是的相关知识点. viewpager的简单使用(适配器模式):https://www.cnblogs.com/fuly550871915/p/4922953. ...
- python 练习题(1-15)
1.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 2.生成双色球 3.逻辑运算(运算符优先级) 4.输入一个整数,判断这个数是几位数 5.用while循环计算 1-2+3-4...-9 ...