1-PyMongo Demo
参考文档:
https://www.runoob.com/python3/python-mongodb.html
https://cloud.tencent.com/developer/article/1571666
https://www.cnblogs.com/JansXin/p/7885767.html
1.1-创建库、集合
在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
import pymongo
# 创建客户端对象
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
# 创建数据库对象
db_obj = mongo_client['db_name']
# 查询所有数据库名称
db_names_list = mongo_client.list_database_names()
print(db_names_list)
# 创建集合对象
c_obj = db_obj['c_name']
# 查询某库中所有集合名称
c_names_list = db_obj.list_collection_names()
print(c_names_list)
# 删除集合
result = c.drop() # 返回True 或 False
print(result)
1.2-增、删、改、查
1.2.1-插入文档
insert_one(),insert_many(),
import pymongo
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
db = mongo_client.db_name
c = db.c_name
# 插入一条文档
doc_obj = {'name': 'baidu'}
result = c.insert_one(doc_obj) # 返回 InsertOneResult 对象
print(result.inserted_id) # 插入文档的_id值
# 插入多条文档
doc_obj1 = {'name': 'google'}
doc_obj2 = {'name': 'firefox'}
doc_obj3 = {'name': '360'}
obj_list = [doc_obj1, doc_obj2, doc_obj3]
result = c.insert_many(obj_list) # 返回 InsertManyResult 对象
print(result.inserted_ids) # 插入文档的_id值的列表
1.2.2-查询文档
find(),find_one(),
import pymongo
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
db = mongo_client.db_name
c = db.c_name
# 查询一条文档
result = c.find_one()
print(type(result), result)
# 查询所有文档
result = c.find() # 返回 Cursor 对象
# 指定条件查询
query = query1 = {'name': 'baidu'}
query = query2 = {'name': {'$ne': 'baidu'}} # 运算符
query = query2 = {'name': {'$regex': '^f.*x$'}} # 正则
result = c.find(query)
# 显示指定字段
# 显示设 1,不显设 0,除了 _id 不能在中同时指定 0 和 1
result = c.find({}, {'_id': 0, 'name': 1})
# 指定返回条数
result = c.find().limit(limit_num)
# 排序返回文档
# 默认为升序,1 为升序,-1 为降序
limit_num = 3
result = c.find().sort('name', -1)
print(list(result))
1.2.3-更新 文档
update_one(),update_many(),
import pymongo
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
db = mongo_client.db_name
c = db.c_name
# 修改一条文档
query = {'name': 'baidu'}
modify = {'$set': {'name': 'Baidu'}}
result = c.update_one(query, modify) # 返回 UpdateResult 对象
# 修改多条文档
query = {'name': {'$regex': '^goo'}}
modify = {'$set': {'name': 'Google'}}
result = c.update_many(query, modify) # 返回 UpdateResult 对象
print(result.matched_count) # 匹配文档的输量
print(result.modified_count) # 修改文档的数量
print(result.upserted_id) # 插入文档的_id值
1.2.4-删除文档
delete_one(),delete_many(),
import pymongo
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
db = mongo_client.db_name
c = db.c_name
# 删除一个文档
query = {'name': 'firefox'}
result = c.update_one(query, modify) # 返回 DeleteResult 对象
# 删除多个文档
query = {'name': {'$regex': '^Bai'}}
result = c.delete_many(query) # 返回 DeleteResult 对象
# 删除所有对象
query = {} # 空对象
result = c.delete_many({})
print(result.deleted_count) # 删除文档的数量