Mongoid: Подавление _id для embeds_one? - PullRequest
0 голосов
/ 13 октября 2019

Я ищу способ подавить создание поля _id в дочернем классе ассоциации embeds_one, но не могу найти способ сделать это.

Кто-нибудь знает, как это сделать?

Если вы создаете ассоциацию embeds_one для дочернего класса, то поле _id не является обязательным, поскольку в родительский элемент будет встроен только один дочерний элемент.

Mongoid 7.0, MongoDB 4.2.

Это легко, если использовать Mongoose в экосистеме NodeJS / Javascript. Вы просто указываете

{ _id: false }

в опциях для схемы Mongoose. Ищите аналогичную вещь для Mongoid в мире Ruby on Rails.

Спасибо!

1 Ответ

0 голосов
/ 14 октября 2019

Mongoid внутренне определяет поле _id в каждом документе со значением по умолчанию, но вы можете переопределить это поле, чтобы не иметь значения по умолчанию.

class Foo
  include Mongoid::Document

  embeds_one :bar
end

class Bar
  include Mongoid::Document

  embedded_in :foo

  field :_id, type: String
end
...