pymongo 的安装命令 pip install pymongo.

import pymongo

数据库及集合查询(创建)

  1. 连接数据库
  2. 查询数据库中的数据库
  3. 查询数据库中的集合
  4. 创建数据库和集合只需要直接引用即可,如果不存在则自动创建。但是只有插入内容才会显示
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"] # 不存在自动创建集合

数据插入及查询

  1. isert_one()insert_many() 函数分别用来插入一条或者多条文档,对应的返回值的 inserted_idinserted_ids 返回插入文档的 _id 值。
  2. 插入时们也可以手动的指定 _id 属性。
  3. 查询使用的函数为 find_one()find()。注意使用 find() 函数返回的是一个指针(cursor),而 find_one() 返回的是字典。
  4. 查询中的表达式和 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)

数据的修改及删除

  1. 修改数据使用 update_one()update_many()。返回结果的 modified_count 属性给出修改文档个数, matched_count 给出插值匹配个数。
  2. 删除数据使用 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 常用的操作的更多相关文章

  1. 真香!Python十大常用文件操作,轻松办公

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  2. python中 列表常用的操作

    列表可以装大量的数据,不限制数据类型,表示方式:[]:列表中的元素用逗号隔开. lst = [] #定义一个空列表 lst = ["Tanxu",18,"女", ...

  3. python txt文件常用读写操作

    文件的打开的两种方式 f = open("data.txt","r") #设置文件对象 f.close() #关闭文件 #为了方便,避免忘记close掉这个文件 ...

  4. python操作mongodb之基础操作

    #coding:utf-8 __author__ = 'hdfs' import pymongo from pymongo import MongoClient client = MongoClien ...

  5. 通过python调用jenkins 常用api操作

    # -*- coding: utf-8 -*- import jenkins class TestJenkins(object): def __new__(cls, *args, **kwargs): ...

  6. 【转】通过python调用jenkins 常用api操作

    原:https://www.cnblogs.com/L-O-N/p/11608220.html # -*- coding: utf- -*- import jenkins class TestJenk ...

  7. Linux操作_常用命令操作练习

    1,新键一个用户,该用户名为自己姓名首字母缩写+学号最后2位组成(如王东,学号最后2位为18,则该用户名为wd18),为该用户设置密码,并将其加到users组:将该用户的相关信息更改(要求:Name为 ...

  8. php操作mongodb的常用函数

    连接mongodb: $mongoObj = new Mongo("127.0.0.1" , array( 'connect'=>true, 'persist'=>tr ...

  9. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

随机推荐

  1. Docker安装ElasticSearch及kibana

    什么是Kibana? Kibana 是一个设计出来用于和 Elasticsearch 一起使用的开源的分析与可视化平台,可以用 kibana 搜索.查看.交互存放在Elasticsearch 索引里的 ...

  2. PLSQL安装教程,无需oracle客户端(解决本地需要安装oracle客户端的烦恼)

    最近用笔记本开发,项目用的是Oracle数据库,不想本地安装Oracle客户端. 就只装了一个PLSQL 连接数据库的时候各种错误,现在解决了记录一下. 详细内容见  附件

  3. VS 编译通过后 链接提示 无法使用的外部符号

    1. 检查是否已经链接了需要的.lib静态库,如果是自己定义的头文件,检查cpp文件是否添加到了VS工程里 2. 头文件尽量不要包含其他头文件,容易造成包含混乱,如头文件里使用了自定义的类名,最好只用 ...

  4. mysql查看及设置最大连接数

    #查看: show variables like '%max_connections%'; #设置: set GLOBAL max_connections = 1000;

  5. Springboot admin 发送邮件失败:com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user

    发邮件已经是老生常谈了,今天又遇到了,而且又出了各种问题.我晕哦. 我的配置是: spring.mail.host=smtp..com spring.mail.username=klxxxx spri ...

  6. python中os.path模块简介

    1.python中获取当前工作目录 curDir = os.getcwd() os.getcwd()返回的是执行命令时所在的目录,而不是脚本本身所在的目录 2.os.path os.path.absp ...

  7. selenium与chrome浏览器及驱动的版本匹配

    用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...

  8. python yield 与 yield from转

    python yield 与 yield from转 https://blog.csdn.net/chenbin520/article/details/78111399?locationNum=7&a ...

  9. 魔力Python--if __name__ == '__main__' 的理解

    if __name__ == '__main__' 的理解 __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ . 这句话的意思就是,当模块被直接运行时,以下代码块将被运行, ...

  10. 软件测试day1

    Windows基础 一.什么是软件(software) 计算机(computer)=硬件(hardware)+软件(software) 软  件(software)=程序(program)+文档(do ...