【问题标题】:Mongoose mixed type schema is getting processed as an array of keys of type String, but no valuesMongoose 混合类型模式被处理为字符串类型的键数组,但没有值
【发布时间】:2016-01-15 23:10:01
【问题描述】:

我有一个看起来像这样的猫鼬模式:

"datetime": {"type": Date}
"sequence": {"type": Number}
"extra": {"type": mongoose.Schema.Types.Mixed}

由于某种原因,我模型中的“额外”键将键值对字典的键值对处理为字符串数组,其中每个字符串都是字典中的键。例如以下数据:

{
    "datetime": new Date(),
    "sequence": 10,
    "extra": {"val1": 5, "val2": "hello"}
}

处理如下:

{
    "datetime":  [Date object]
    "sequence": 10,
    "extra": ["val1", "val2"]
}

此数据正在 Python 中填充,并且“额外”字段作为 Python 字典提供。然后通过requests 模块将整个数据集转发到REST API。这个“额外”字段的内容可能会有很大差异,这就是我在模型中将其定义为“混合”的原因。

有人知道为什么猫鼬会这样解析这个字段吗?

【问题讨论】:

    标签: python node.js mongodb mongoose schema


    【解决方案1】:

    我认为我的问题与request 的可选数据/json 参数之间的差异有关。我正在使用:

    request.post(url, myDictionary)
    

    当我应该使用的时候默认为数据键:

    request.post(url, json=myDictionary)
    

    这样做的问题当然是这里不能序列化一个 Python 的 datetime 对象,所以我只是简单地使用了 time.time() 来代替。

    关于我的猫鼬模式,“额外”字段没有定义模式,因此数据只是“按原样”提供。

    希望这在有人在某些时候遇到类似问题时有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多