Tenemos una entrada de modelo con un elemento incrustado:Mongoid 2.4 Consultando documento incrustado por ID A falta
class Entry
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Spacial::Document
embeds_many :items, cascade_callbacks: true
...
class Item
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Spacial::Document
embedded_in :entry
...
Si yo consulto Mongo directamente para una entrada por ID:
{"items._id" : ObjectId("50536b18baa072000f000360")}
Devuelve la Entrada:
505363b36181ce00020006b1 { "created_at": "2012-09-14T17: 04: 51Z", "artículos": [{ "_ id": "50536b1a2b17b3 .. .
Sin embargo, cuando consulta a través Mongoid:
irb(main):002:0> Entry.where('items._id' => '50536b18baa072000f000360')[0]
=> nil
Todas las demás funcionan las consultas (para otros campos en los artículos y para campos de entrada). Pero no para id.
Estamos ejecutando mongoid (2.4.12).
o en mi caso, 'ciclomotor :: :: BSON OBJECTID ('50536b18baa072000f000360')', con el fin de curar 'método no definido \' __bson_dump__' para BSON :: ObjectId'. ¡Uf! –
Utilice Moped :: BSON :: ObjectId en Mongoid 3 – Obie
Esto no funcionará para Mongoid 4.0.0.beta1 –