A.如何索引「嵌套」及其所有值?如何在MongoDB中創建嵌套索引?
B.如何對價值進行指數化?
{
id: 00000,
attrs: {
nested:{
value: value1,
valuetwo: value2,
}
}
}
我在這裏看:http://www.mongodb.org/display/DOCS/Indexes和文檔,以我所知,都沒有明確的有關未嵌套索引的東西。
A.如何索引「嵌套」及其所有值?如何在MongoDB中創建嵌套索引?
B.如何對價值進行指數化?
{
id: 00000,
attrs: {
nested:{
value: value1,
valuetwo: value2,
}
}
}
我在這裏看:http://www.mongodb.org/display/DOCS/Indexes和文檔,以我所知,都沒有明確的有關未嵌套索引的東西。
你會創建它們,就像如果你是一個頂級場創建索引:
db.collection.ensureIndex({"attrs.nested.value": 1})
你需要在每個領域明確創建索引。
A.索引所有的 「嵌套」 你將不得不指數分別它們的屬性:
db.collection.createIndex({"attrs.nested.value": 1});
db.collection.createIndex({"attrs.nested.valuetwo": 1});
這可以在一個命令來完成與:
db.collection.createIndex({"attrs.nested.value": 1, "attrs.nested.valuetwo": 1});
乙僅索引「valueetwo」:
db.collection.createIndex({"attrs.nested.valuetwo": 1})
使用createIndex超過ensureIndex作爲ensureIndex是Deprecated since version 3.0.0
如果任何索引字段是一個數組的MongoDB自動創建多鍵索引;您不需要明確指定多鍵類型。
這兩個場景的 db.coll.createIndex工作({ 「addr.pin」:1})
方案1個嵌套對象
{
userid:"1234",
addr: {
pin:"455522"
}
},
{
userid:"1234",
addr: {
pin:"777777"
}
}
方案2個嵌套數組
{
userid:"1234",
addr: [
pin:"455522",
pin:"777777",
]
}
您在A中給出的兩組索引創建命令是* not *等價。第一個創建'value'和'valuetwo'的單獨索引。第二個在這兩個值上創建單個複合索引。該索引只能用於爲'value'指定值的查詢。也就是說,它對於單獨查詢'valuetwo'沒有用處。 – 2016-05-26 10:58:45