--官方文档:http://api.mongodb.com/python/current/
01、pymongo -- 插数据
--无认证的pymongo连接
from pymongo import MongoClient
client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略
collection = client[db名][集合名]
# collection = client.db名.集合名 # 与上边用法相同
--代码示例:
from pymongo import MongoClient
def get_db():
# 数据库连接
client = MongoClient("127.0.0.1", 27017)
# 选择一个数据库, 选择一个集合
col = client['python']['data']
return col
if __name__ == '__main__':
col = get_db()
"""
# 插入一条数据
dic = {'name':'serena',"id":1532}
col.insert_one(dic)
# 插入多条数据
dics = [{'name': 'amy', 'id': 1798},{'name': 'bob', 'id': 1631}]
col.insert_many(dics)
"""
02、pymongo -- 查数据并遍历
from pymongo import MongoClient
def get_db():
# 数据库连接
client = MongoClient("127.0.0.1", 27017)
# 选择一个数据库, 选择一个集合
col = client['python']['data']
return col
if __name__ == '__main__':
col = get_db()
# 查询数据遍历
for i_data in col.find({"name":'amy'}):
print(i_data)
# 查询一条数据
print(col.find_one())
--除了最基本的:col.find(),还有如图所示的其他查询选择:
03、pymongo -- 更新数据
--这里建议使用:
--update_one
--update_many
from pymongo import MongoClient
def get_db():
# 数据库连接
client = MongoClient("127.0.0.1", 27017)
# 选择一个数据库, 选择一个集合
col = client['python']['data']
return col
if __name__ == '__main__':
col = get_db()
# 查询数据遍历
for i_data in col.find():
print(i_data)
# 更新数据,基本形式:col.update_many({}, {'$set'})
# 这里不建议使用 update了,建议使用update_one 和 update_many
# upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
# $set表示指定字段进行更新
# 表示将所有数据的id字段修改为xxx-xxx-ip-find
# col.update_many({}, {'$set':{"id":"xxx-xxx-ip-find"}}, upsert=True)
# 查出"name":"bob"的字段,将其id字段修改为"con_xxx_iP-xxx"
# col.update_many({"name":"bob"}, {'$set': {"id": "con_xxx_iP-xxx"}}, upsert=True)
# 查出"name":"bob"的字段,将其整条字段更新
# col.update_many({"name": "bob"}, {'$set': {"name":"BOB","id": "con_xxx_bob-iP-xxx"}}, upsert=True)
# 查出"name":"serena"的字段,全部增加属性"class",并赋予默认值"class_null";增加属性以后方便进一步处理
col.update_many({"name": "serena"}, {'$set': {"class":"class_null"}}, upsert=True)
# 查询数据遍历
for i_data in col.find():
print(i_data)
04、删除数据
from pymongo import MongoClient
def get_db():
# 数据库连接
client = MongoClient("127.0.0.1", 27017)
# 选择一个数据库, 选择一个集合
col = client['python']['data']
return col
if __name__ == '__main__':
col = get_db()
# 查询数据遍历
for i_data in col.find():
print(i_data)
# 删除一条数据
# col.delete_one({"name":"bob"})
# 删除一类数据
col.delete_many({"name": "bob"})
print("*"*50)
# 查询数据遍历
for i_data in col.find():
print(i_data)