Можно ли отключить / удалить _id из встроенных документов? - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу отключить _id из встроенных документов в моих моделях или удалить их.

Я пытался использовать операцию unset после создания документа, но поле _id по-прежнему остается. Я также не хочу хранить хэши, так как это кажется возможным решением.

Итак, если у меня есть два класса, как показано ниже, mongoid дает мне поле _id во вложенном объекте Address, когда я вижу коллекцию в Compass.

class User < RootClass
  include Mongoid::Document
  store_in collection: "users_table"
  field :_id, type: String, default: ->{ userName }
  field :userName, type: String
  embeds_one :address, class_name: 'Address', cascade_callbacks: true
  accepts_nested_attributes_for :address, allow_destroy: true
end

class Address < RootClass
  include Mongoid::Document
  embedded_in :User
  field :address_line_one, type: String
  field :address_line_two, type: String
  field :address_line_three, type: String
end

{
  "_id": "Person 1",
  "address": {
    "_id": 0, // I want to disable/remove this
    "address_line_one": "Address line one",
    "address_line_two": "Address line two",
    "address_line_three": "Address line three",

  }
}
...