这周在做一个小项目,使用python操作mongodb,这里总结一下其中的一些小知识点
Python的split函数
语法:
str.split(str="", num=string.count(str))
参数:
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
在项目里有一个使用场景:给定一个数据文件,其中每行数据是一些身份信息按照一定格式组成,例如:
[email protected]—name+++phone***address,由于中间分隔符不一样,所以可以用到split中的num参数
delimiter = ['---', '+++', '***'] #给定分隔符列表
line = '[email protected]+++phone***address'
fields = []
for dr in delimiter:
tmp = line.split(dr, 1) #每次分割1次
fields.append(tmp[0])
line = tmp[1]
fields.append(line)
print (res)
pymongo api
from pymongo import MongoClient
#获取客户端
client = MongoClient()
client = MongoClient("mongodb://mongodb0.example.net:27019")
client = MongoClient('localhost', 27017)
#连接数据库
db = client.test
db = clinet['test']
#获取集合
collection = db.col_name
collection = db['col_name']
#插入数据
collection.insert_one(doc)
collection.insert_many(docs)
#查询数据
find(filter=None, projection=None, skip=0, limit=0,
no_cursor_timeout=False, cursor_type=CursorType.NON_TAILABLE,
sort=None, allow_partial_results=False, oplog_replay=False,
modifiers=None, manipulate=True)
find_one(filter_or_id=None, *args, **kwargs)
#遍历查询数据
for doc in collection.find()
print(doc)
#条件查询
from bson import ObjectId
doc = collection.find({'_id':ObjectId('5cb82fab9510257d2ef26f3d')}) #使用_id查询
#更新文档
collection.update_one(filter, update, upsert=False)
collection.update_many(filter, update, upsert=False)
collection.replace_one(filter, replacement, upsert=False)
collection.find_one_and_update(filter, update, projection=None, sort=None, return_document=ReturnDocument.BEFORE, **kwargs)
#删除文档
collection.delete_one(filter)
collection.delete_many(filter)
collection.drop() #删除集合
collection.find_one_and_delete(filter, projection=None, sort=None, **kwargs)
collection.find_one_and_replace(filter, replacement, projection=None, sort=None, return_document=ReturnDocument.BEFORE, **kwargs)
#索引
collection.create_index(keys, **kwargs)
collection.create_indexes(indexes)
collection.drop_index(index_or_name)
collection.drop_indexes()
collection.reindex()
collection.list_indexes()
collection.index_information()
参考文献:
PyMongo 3.7.2 Documentation
pymongo 学习记录
Python MongoDB 菜鸟教程
pymongo 学习记录