3
說我有一個數百萬份文件,其中一些在下面的例子中有像myField
一個字段集合:MongoDB索引是否存在字段?
{
...
myField: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit, lectus pharetra sodales cursus, purus nunc tristique urna, vel bibendum purus nisl non ipsum. Aenean porta porttitor mauris, vitae bibendum augue luctus vitae. Fusce non posuere quam. Mauris bibendum elit orci, et pretium quam faucibus sit amet. Vivamus nec congue sem, in commodo nisi. Pellentesque dapibus neque eget sem elementum, non pellentesque erat sagittis. Morbi et scelerisque orci. Etiam sed augue orci. Aliquam feugiat, arcu non aliquet sagittis, ante enim lacinia purus, quis lacinia leo leo id diam. Curabitur rutrum, eros in gravida efficitur, justo sem finibus dui, at lacinia nulla neque non nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit, lectus pharetra sodales cursus, purus nunc tristique urna, vel bibendum purus nisl non ipsum. Aenean porta porttitor mauris, vitae bibendum augue luctus vitae. Fusce non posuere quam. Mauris bibendum elit orci, et pretium quam faucibus sit amet. Vivamus nec congue sem, in commodo nisi. Pellentesque dapibus neque eget sem elementum, non pellentesque erat sagittis. Morbi et scelerisque orci. Etiam sed augue orci. Aliquam feugiat, arcu non aliquet sagittis, ante enim lacinia purus, quis lacinia leo leo id diam. Curabitur rutrum, eros in gravida efficitur, justo sem finibus dui, at lacinia nulla neque non nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse suscipit, lectus pharetra sodales cursus, purus nunc tristique urna, vel bibendum purus nisl non ipsum. Aenean porta porttitor mauris, vitae bibendum augue luctus vitae. Fusce non posuere quam. Mauris bibendum elit orci, et pretium quam faucibus sit amet. Vivamus nec congue sem, in commodo nisi. Pellentesque dapibus neque eget sem elementum, non pellentesque erat sagittis. Morbi et scelerisque orci. Etiam sed augue orci. Aliquam feugiat, arcu non aliquet sagittis, ante enim lacinia purus, quis lacinia leo leo id diam. Curabitur rutrum, eros in gravida efficitur, justo sem finibus dui, at lacinia nulla neque non nulla.",
...
}
我想能夠執行返回其中場myField
存在記錄的查詢。我可以通過在myField
上創建一個索引來做到這一點,但索引非常大,並且由於我只是在檢查字段的存在,所以實際上正在使用不足。
有沒有辦法創建一個只用於檢查字段是否存在(而不是值匹配)的索引?我看着partial indexes,雖然有趣,但我不明白他們將如何應用在這裏。
爲什麼你不使用$ exists操作符? – Sachin
@Sachin - 做什麼?只是爲了澄清 - 我不問如何查詢字段存在的記錄。這個問題是特定於索引的內容,而不是查詢數據。 –
Afaik,如果你不想有一個大的索引,唯一的方法是創建一個輔助布爾字段(如果myField存在,則返回true,否則返回false),然後索引它。那些查詢應該改爲布爾字段。 – joao