私はインデックスを追加したいMongoDBコレクションを持っています。この投稿の目的のために、コレクション名がCats
であるとしましょう。MongoDBコレクションのハッシュフィールドにインデックスを追加する
Cat.first(:conditions => { "metaData.id" => an_id }
> db.cats.findOne();
{
"_id" : ObjectId("4f248f8ae4b0b775c9eb002d"),
"metaData" : {
"type" : "cute",
"id" : "4ed3b6c599114b488be52bc3"
},
....
}
私は(Mongoidを使用して)非常に頻繁に照会:あなたがdb.cats.findOne();
を行うので、もし私はそれは次のようになりますCats
コレクションのハッシュキーを持っています
私は本当にここでインデックスの利点を利用できるようにしたいと思いますが、私はすべてのmetaDataまたは単にmetaData.id(私はIDを特定して、非常に頻繁に)クエリする必要があるかどうかは完全にはわかりません。
私はここで正しいことをすれば、私は劇的にクエリを高速化できると思うので、この問題に対する解決策が大好きです。また、これはユニークなインデックスです。
また、metaDataは埋め込みドキュメントではありません。独自のコレクションはありません。それぞれのcatsオブジェクトに1:1のマッピングを持つ単純なハッシュです。