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. C# 控件之数据绑定

    增加一个委托方法,可以实现后台多线程直接更新UI界面的值,利用了控件的DataBindings,以及 INotifyPropertyChanged接口和事件委托机制. 如果只是通过INotifyPro ...

  2. django Table doesn't exist

    1146 django Table '' doesn't exist   一:出错原因   手动在数据库中drop了一张表,重新执行python manage.py migrate时出错,提示不存在这 ...

  3. debian apache2 修改默认路径

    1.修改 /etc/apache2/sites-enable/000-default.conf 将DocumentRoot改成你的路径 2.修改 /etc/apache2/apache2.conf & ...

  4. redis--解析字符串

    # coding=utf-8import codecs if __name__ == '__main__': cmdlist = ("Decode") while True: cm ...

  5. Delphi 字母 递增 递减算法

    网上看了一下,好象没有现成的,自己随手写了一下,给大家参考一下吧 // a..z 97..122 A..Z 65..90 function UpABC(ABC : String; AddCount : ...

  6. orcal -学习准备

    格式化命令: 设置每行长度 SET LINESIZE 300; 设置每页长度 SET PAGESIZE 30; 使用文本编辑 文本编辑sql:ed aa 使用@aa 切换用户: CONN 用户名/密码 ...

  7. dax学习

    增长率 = (DIVIDE(SUM('业绩达成'[实际业绩]),CALCULATE(SUM('业绩达成'[实际业绩]),PREVIOUSMONTH('业绩达成'[周期])))-1)*100上月业绩 = ...

  8. V-REP Remote API(C++)实现简单的关节转动

    基础内容参考:https://www.cnblogs.com/eternalmoonbeam/p/10753149.html V-REP客户端设置: 在V-REP场景文件中需要添加三个实体,包括两个形 ...

  9. rem_750

    /* fix the code flash the page */ var globalWidth = document.documentElement.clientWidth;//window.in ...

  10. phxpaxos实现状态机CAS操作

    看过了phxpaxos的实现,发现选主逻辑中非主也能够调用Propose.因此即使开启了选主功能,也可能会出现两个人同时Propose的场景.而Propose时,InstanceID只是作为输出而非输 ...