2011-11-12 3 views
1

Можно ли отключить _id для встроенных документов?MongoMapper Disable Embedded ID

Например, если у родителя есть встроенный дочерний документ. для ребенка кажется бессмысленным иметь идентификатор, если я не намерен ссылаться на ребенка из другого места.

class Parent 
    include MongoMapper::Document 
    one :child 
    key :name 
end 

class Child 
    include MongoMapper::EmbeddedDocument 
    key :name 
end 

parent = Parent.new(:name => 'parent', 
    :child => Child.new(:name => 'child')) 

puts parent.to_json 

{"id":"4ebeddde51d9e56dcb000006","name":"parent", 
"child":{ 
    "id":"4ebeddde51d9e56dcb000005", 
    "name":"child"}} 

ответ

1

Я помню, что в какой-то момент было снято поле _id для встроенного. Лучше всего было бы исправить его самостоятельно, а затем отправить запрос на тяну.

В противном случае отсутствует опция конфигурации для удаления идентификатора. Возможно, вы сможете переписать to_mongo, если бы вы были предприимчивы.