猫鼬混合类型模式正在作为字符串类型的键数组处理,但没有值
Mongoose mixed type schema is getting processed as an array of keys of type String, but no values
我有一个看起来像这样的猫鼬模式:
"datetime": {"type": Date}
"sequence": {"type": Number}
"extra": {"type": mongoose.Schema.Types.Mixed}
出于某种原因,我模型中的 "extra" 键正在将字典中的键值对处理为字符串数组,其中每个字符串都是字典中的一个键。比如下面的数据:
{
"datetime": new Date(),
"sequence": 10,
"extra": {"val1": 5, "val2": "hello"}
}
正在按如下方式处理:
{
"datetime": [Date object]
"sequence": 10,
"extra": ["val1", "val2"]
}
此数据正在 Python 中填充,"extra" 字段作为 Python 字典提供。然后通过 requests 模块将整个数据集转发到 REST API。这个 "extra" 字段的内容可以有很大的不同,这就是为什么我在我的模型中将它定义为 "mixed"。
有谁知道为什么 mongoose 会这样解析这个字段?
我认为我的问题与 request 的可选数据/json 参数之间的差异有关。我正在使用:
request.post(url, myDictionary)
默认为数据密钥,而我本应使用:
request.post(url, json=myDictionary)
当然,这里的问题是 Python datetime 对象不能在这里序列化,所以我只是用 time.time() 代替。
关于我的 mongoose 模式,"extra" 字段没有定义的模式,因此只提供数据 "as-is"。
希望这对有人在某个时候遇到类似问题的情况有用。
我有一个看起来像这样的猫鼬模式:
"datetime": {"type": Date}
"sequence": {"type": Number}
"extra": {"type": mongoose.Schema.Types.Mixed}
出于某种原因,我模型中的 "extra" 键正在将字典中的键值对处理为字符串数组,其中每个字符串都是字典中的一个键。比如下面的数据:
{
"datetime": new Date(),
"sequence": 10,
"extra": {"val1": 5, "val2": "hello"}
}
正在按如下方式处理:
{
"datetime": [Date object]
"sequence": 10,
"extra": ["val1", "val2"]
}
此数据正在 Python 中填充,"extra" 字段作为 Python 字典提供。然后通过 requests 模块将整个数据集转发到 REST API。这个 "extra" 字段的内容可以有很大的不同,这就是为什么我在我的模型中将它定义为 "mixed"。
有谁知道为什么 mongoose 会这样解析这个字段?
我认为我的问题与 request 的可选数据/json 参数之间的差异有关。我正在使用:
request.post(url, myDictionary)
默认为数据密钥,而我本应使用:
request.post(url, json=myDictionary)
当然,这里的问题是 Python datetime 对象不能在这里序列化,所以我只是用 time.time() 代替。
关于我的 mongoose 模式,"extra" 字段没有定义的模式,因此只提供数据 "as-is"。
希望这对有人在某个时候遇到类似问题的情况有用。