python-pymongo-指定部分字段格式
函数指定
from datetime import datetime
def USER_INFO(username: str, is_active=None, update_time=None, create_time=None, _id=None):
return {
'_id': t_id,
'user_name': username,
'is_active': is_active,
'update_time': datetime.now(),
'create_time': datetime.now(),
}
通过调用函数的方式,来指定我需要的字段是否是必填,是否我需要的格式.
以下方式不用了
再不自定义_id的情况下, pymongo 需要传入 ObjectId 才能进行查找.
通过_id 查询数据.
# pymongo 自己产生的id查询.
from bson.objectid import ObjectId
# 引入后正常查找就行了
query = {"_id": ObjectId("612df1252c9df273cbedc50a")}
# 自己自定义id进行查询.
query = {"_id": "612df1252c9df273cbedc50a"}
指定部分字段.
import time
from bson.objectid import ObjectId
from dateutil import parser
key_value_type = {
# 表_id
"_id": "612df1252c9df273cbedc50a", # 可以自己指定成字符串类型
"_id_type": {
"value_1:": bson.ObjectId('612df1252c9df273cbedc50a'), # 可以自己指定成 ObjectId 类型 内容自己定义.
"value_2:": '612df1252c9df273cbedc50a',
},
# 时间
"time_type": {
"value": parser.parse(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())),
},
# 整数
"int_type": {
"value": 22
},
# 浮点数
"float_type": {
"value": 22.00
},
# 字符串
"str_type": {
"value": '22.00'
},
# 布尔型
"bool_type": {
"value": True
}
}
查看结果
{
"_id": "612df1252c9df273cbedc50a",
"_id_type": {
"value_1:": {
"$oid": "612df1252c9df273cbedc50a"
},
"value_2:": "612df1252c9df273cbedc50a"
},
"time_type": {
"value": {
"$date": "2022-04-13T09:44:44Z"
}
},
"int_type": {
"value": 22
},
"float_type": {
"value": 22
},
"str_type": {
"value": "22.00"
},
"bool_type": {
"value": true
}
}