第四部分:MongoDB与Python交互
8 Python操作MongoDB
- 参考案例005/006/007
005 python操作mongodb1
# -*- coding: utf-8 -*-
import pymongo
# 第一步:建立数据库连接
# 先启动本地数据库服务
# 注意,脚本不能命名为pymongo.py,不然会报错找不到MongoClient属性
# 连接本地的MongoDB服务器默认端口127.0.0.1:27017
client = pymongo.MongoClient()
# 第二步:获取数据库和集合
# 获取数据库,没有就直接创建
db = client.papers
# 获取一个集合
collection = db.books
# 获取集合可以使用句点法,也可以使用中括号
# collection = client.papers.books
# collection = client["papers"]["books"]
# 第三步:操作数据库
# 插入文档
# 注意,脚本没运行一次,就像数据库中插入一次文档,所以,下面查询文档,结果会越来越多
book = {"author": "Mike",
"text": "My first book!",
"tags": ["爬虫", "python", "网络"]
}
book_id = collection.insert(book)
# 查询文档
book_result = collection.find_one({"author": "Mike"})
print(book_result)
# 查看所有符合条件的文档数量
print(collection.find({"author": "Mike"}).count())
# 查询所有符合条件的文档
book_results = collection.find({"author": "Mike"})
for result in book_results:
print(result)
# 前面插入了文档,该处删除文档,最后books还是为空
# 删除所有符合条件的文档
collection.delete_many({"author": "Mike"})
006 python操作mongodb2
# -*- coding: utf-8 -*-
from pymongo import MongoClient
# 第一步:创建连接
client = MongoClient()
# 使用方括号选择数据库及其集合
collection = client["test"]["t251"]
# 也可以使用.的方式
# collection = client.test.t251
# 第二步:插入数据(插入一次就注释掉,不然再次运行由于已经存在相同_id,会出现报错)
# data_list = [{"_id":i, "name":"py{}".format(i)} for i in range(1000)]
# collection.insert(data_list)
# 第三步:查询数据
ret = collection.find()
data_list = list(ret)
# 挑选出100整数倍的数据,每个i都是字典
data_list_100 = [ i for i in data_list if i["_id"]%100==0 and i["_id"]!=0]
for i_100 in data_list_100:
print(i_100)