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. 6.2 集合和映射--集合Set->底层基于链表实现

    在6.1中我们实现了底层基于二叉搜索树的集合,本节就底层如何基于链表实现进行学习,注意:此处的链表是之前自己封装的. 1.集合set相关功能 1.1 add()的不同 用于链表本身没有去重的效果,因此 ...

  2. python threading 用法

    python 多线程传参有点奇怪记录一下 import thread sql1 = 'select 1' sql2 = 'select 2' def run(sql): print sql # 说明 ...

  3. Git上传本地代码

    Git  add  .将本地文件上传至缓冲区 git   commit  -m  'project  init'  将代码上传至本地仓库 Git   push   将本地的代码传至线上(码云) git ...

  4. HTML5 关于本地操作文件的方法

    由于传统 b/s 开发出于安全性的考虑,浏览器对于本地文件的操作权限几乎没有,用户想要操作一个文件基本都是采用先上传到服务器, 再回显给浏览器供用户编辑,裁剪等的方法,这种方式虽然可行,但其对于服务器 ...

  5. jvm 常用参数

    linux 查看 jvm参数配置命令 jinfo -flags pid(当前Java应用的pid)

  6. 注意UTF-8-BOM 这个编码格式

    有时候文本文件处理出现异常,找不到其他原因的时候,注意查看下文件的编码: Notepad:编码菜单 如果发现是UTF-8-BOM,需要改成UTF-8

  7. Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

    Linux,最早由Linus Benedict Torvalds在1991年开始编写.在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及 ...

  8. [Docker] 使用 Dockerfile 的多级构建 (multi-stage builds)

      Multi-stage build 即在一个 Dockerfile 中使用多个 FROM 指令.   每个 FROM 指令可以使用不同的基础镜像,并且每一个都开启新的构建阶段.   你可以有选择地 ...

  9. Unreal4360全景视频序列渲染

    Unreal4 自带360全景渲染的插件 插件名称叫 Stereo Panoramic Movie Capture 一.打开Edit下的Plugins 二.搜索Stereo Panoramic Mov ...

  10. cf1047C-Enlarge GCD-(欧拉筛+map+gcd+唯一分解定理)

    https://vjudge.net/problem/CodeForces-1047C 题意:有n个数,他们有个最大公约数设为maxxgcd,要删去一些数,使得剩下的数的gcd大于maxxgcd. 解 ...