每次用到了来加,没有固定顺序。
参考链接
创建唯一索引
import datetime
import pprint
from pymongo import MongoClient
# 使用 pymongo 连接到数据库中的目标集合
col = MongoClient("127.0.0.1:27017").get_database("mytest").get_collection("codetable")
# 在数据库中插入一条数据方便测试
col.insert_one({"SecuCode": "SH000001", "EndDate": datetime.datetime(2019, 9, 4), "num": 1234})
# 以 SecuCode 创建唯一索引 其中的 1 和 -1 表示 索引的正序和倒叙
# 1 是从小到大 -1 是从大到小
col.create_index([("SecuCode", 1)], unique=True)
# 查看索引
print(pprint.pformat(col.index_information()))
# 删除索引
col.drop_index([("SecuCode", 1)])
# 创建联合唯一索引
col.create_index([("SecuCode", 1), ("EndDate", 1)], unique=True)
删除集合
from pymongo import MongoClient
# 使用 pymongo 连接到数据库中的目标集合
col = MongoClient("127.0.0.1:27018").get_database("mytest").get_collection("codetable")
# 删除集合
col.drop()
重命名集合
参考: stackoverflow.com/questions/4…
说的是可以在 mongo shell 的原生终端去 rename, 但是在 pymongo 中没有这个功能。
在终端实现 rename:
db["old_name"].renameCollection("new_name")
当然,一般来说只要在原生终端可行,就可以使用 python 封装一层调用。
查阅 pymongo 的文档,可以发现其实是有这个方法的, 相关链接: api.mongodb.com/python/curr…
所以我们可以用以下来实现:
db.oldname.rename('newname')
报错
pymongo.errors.BulkWriteError: batch op errors occurred
参考: blog.csdn.net/perfectnihi… 示例截图:


pymongo.errors.DuplicateKeyError
参考: 示例截图:

