任务需求:
数据库hospital集合所有数据添加一个八位数的编码
import pymongo
# 连接数据customer(库)hospital(集合)
client = pymongo.MongoClient(host='127.0.0.1')
db = client.customer
collection = db.hospital
hospital_list = collection.find()
h = []
# 一个八位数数字
numer = 10000000
# 给数据库所有数据添加一个八位数的编码
for ho in hospital_list:
numer += 1
collection.update_one({'_id': ho['_id']}, {
"$set": {'code': str(numer)}
})
print('ok')
删除数据库不需要的字段
要删除MongoDB数据库中不需要的字段,可以使用update
方法来更新文档。
以下是一个示例代码,其中将删除名为unwanted_field
的字段:
import pymongo
# 连接MongoDB
client = pymongo.MongoClient("mongodb://localhost:27017/")
# 选择数据库和集合
db = client["mydatabase"]
collection = db["mycollection"]
# 删除不需要的字段
collection.update({}, {"$unset": {"unwanted_field": 1}}, multi=True)
上述代码中,$unset
操作符用于删除文档中包含的指定字段。multi
参数设置为True
,以便将更新应用于所有文档。
请注意,update
方法不会返回被更改的文档,因此需要使用find
方法来检查更改是否生效:
result = collection.find({"unwanted_field": {"$exists": True}})
for doc in result:
print(doc)
上述代码中,使用$exists
操作符来查找包含被删除的字段的文档。如果没有找到任何文档,则说明删除成功。
db.hospital.updateMany({}, {'$unset': {'source_data_encoding': ""}})