Python操作MongoDB

自学整理记录,大神见笑

MongoDB简介

  • MongoDB是非关系数据库,实际上就是一组json字符串
  • 向MongoDB中导入json数据

mongoimport -d MongoDB数据库名 -c 集合名 --file json文件路径

  • 注:一定要在mongodb目录下的bin目录中执行,因为mongoimport在该目录下

python连接mongodb

初始化步骤

  • 导包

from pymongo import MongoClient

  • 实例化client,建立连接

client=MongoClient(host="127.0.0.1",port=27017)

  • 注:127.0.0.1是本地默认地址

  • 注:27017是默认端口

  • 注:默认是本地的时候可以省略不写

  • 注:mongo和redis类似,会自动断开连接,不用管,而mysql需要主动断开连接

  • 连接目标数据库和集合

collection = client["MyMongo"]["contacts"]

  • 注:第一个中括号表示哪一个数据库
  • 注:第二个中括号表示该数据库下的哪一个集合

操作数据库

  • 插入一条数据

collection.insert_one({"_id":10010,"name":"xiaowang","age":10})

  • 注:"_id"如果不指定,也会自动生成,它是mongodb的标识

  • 插入多条数据

data_list = [{"name":"test1"},{"name":"test2"},{"name":"test3"}]
collection.insert_many(data_list)

  • 注:插入多条数据,实际上就是把字典放在列表中
  • 注:下列输入的格式,表示要将format里面的i填入test后的大括号,而i来自最后面for循环中,range表示左闭右开取值,默认从0开始

[{"name":"test{}".format(i)} for i in range(1000)]

  • 删除一条数据

collection.delete_one({"name": "xiaohua"})

  • 删除所有满足条件的数据

collection.delete_many({"name": "xiaohua"})

  • 修改一条数据

collection.update_one({"name": "maziao"}, {"$set": {"name": "liuboyang"}})

  • 修改全部数据

collection.update_many({"name": "maziao"}, {"$set": {"name": "liuboyang"}})

  • 查询一条数据

collection.find_one({"name": "test1"})

  • 查询多条数据

result = collection.find({"name": "test1"})
print(list(result))

  • 注:查询多条直接打印会打印Cursor地址,所以有两种打印方式
    1.一种是转换为列表

print(list(result));

2.另外一种是for循环遍历打印每一条

for i in result:
 print(i)

  • 注:只能循环一次打印,因为游标cursor会到最后

你可能感兴趣的:(Python操作MongoDB)