【问题标题】:How to avoid Mongoid (or MongoDB) replacing empty arrays with null如何避免 Mongoid(或 MongoDB)用 null 替换空数组
【发布时间】:2016-11-03 22:23:02
【问题描述】:

背景:我在 Rails 中构建了一个 API,在 Angular 中构建了一个客户端。我的 API 将连接到第三方 API 并获取一些数据。这些数据将以嵌套对象/哈希的形式出现,存储在 MongoDB/Mongoid 中。

当我的 Angular 客户端操作数据并将其发送到我的 API 以保存它时,嵌套哈希/对象中的所有空数组都将替换为 null

有没有办法可以避免这种情况发生(除了手动将所有nulls 转换回array 但这将是乏味和复杂的,因为我需要将此更新的数据推送到第三部分API 也)?

【问题讨论】:

    标签: ruby-on-rails arrays angularjs mongodb mongoid4


    【解决方案1】:

    试试

     field :your_field, type: Array, default: []
    

     field :your_field, type: Hash, default: {}
    

    【讨论】:

    • 是的,我知道,但我的意思是一个包含嵌套数组的哈希字段...记住,数据已经存在,我已经从另一个 API 导入,它的就在我更新它时,Mongoid 替换了已经存在的空数组并将其替换为 null
    • 您使用的是哪个版本的rails?,如果您使用的是rails 4,那么只需尝试config.action_dispatch.perform_deep_munge = false,您可以查看此链接以获取更多详细信息amilitalia.it/github.com/rails/rails/pull/13188.html
    • 这似乎很有魅力 :) 你想修改你的答案以便我接受吗?
    • 很高兴收到你的来信,我不在乎分数,我很乐意帮助你,太好了! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多