6
インデックスにヒットするように構造をどのように構成する必要があるかを調べようとしています。MongoDB - インデックス付きのネストされたフィールドのクエリ
{ "attributes" : { "make" : "Subaru", "color" : "Red" } }
のインデックスを持つ::私はそうのような構造化文書持つ 私が見つけた何db.stuff.ensureIndex({"attributes.make":1})
は文書で照会することはしませんしながら、ドット表記を使用して照会すると、インデックスに当たるということです。
例:
db.stuff.find({"attributes.make":"Subaru"}).explain()
{
"cursor" : "BtreeCursor attributes.make_1",
"nscanned" : 2,
"nscannedObjects" : 2,
"n" : 2,
"millis" : 0,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"attributes.make" : [
[
"Subaru",
"Subaru"
]
]
}
}
インデックスをヒットするドキュメントスタイルのクエリを取得する方法はあり
db.stuff.find({attributes:{make:"Subaru"}}).explain()
{
"cursor" : "BasicCursor",
"nscanned" : 2,
"nscannedObjects" : 2,
"n" : 0,
"millis" : 1,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
}
}
対?その理由は、永続オブジェクトからクエリを構築するときは、ドット表記を使用するものとは対照的に、ドキュメントとしてそれらを直列化する方がはるかに簡単です。
また、ジャクソン社製の家庭用データマッパー層を使用していることを追加します。 Morphiaのようなものを使用すると、これらのクエリを適切に構築するのに役立つでしょうか?