アイテムが埋め込まれたモデル エントリがあります。
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
...
項目 ID でエントリを直接 mongo にクエリすると、次のようになります。
{"items._id" : ObjectId("50536b18baa072000f000360")}
エントリを返します:
505363b36181ce00020006b1 {"created_at":"2012-09-14T17:04:51Z","アイテム":[{"_id":"50536b1a2b17b3...
それでも、Mongoid 経由でクエリを実行すると:
irb(main):002:0> Entry.where('items._id' => '50536b18baa072000f000360')[0]
=> nil
他のすべてのクエリは機能します (アイテムの他のフィールドおよびエントリのフィールド)。しかし、idのためではありません。
Mongoid (2.4.12) を実行しています。