0
{
_id: ObjectId("53ea4bcb311164af033743fd")
"users": [
{
"name": "Paul"
"age": 36
},
null,
{
"name": "Steve",
"age": 74
}
]
}
一個MongoDB的文件我可能沒有最好的設計選擇,但我決定使用數組作爲用戶鑰的索引。 現在,我想提高我的查詢的性能,只需使用必要的字段我的查詢投影,所以查詢看起來是這樣的:
db.accounts.findOne('53ea4bcb311164af033743fd', {'users.name': 1});
這將返回
{
_id: ObjectId("53ea4bcb311164af033743fd")
"users": [
{
"name": "Paul"
},
{
"name": "Steve"
}
]
}
現在有什麼辦法還包括null
,所以這個指數是正確的?我知道它只適用於投影{'users': 1}
,但這對我來說表現不夠好,因爲我的用戶對象中有相當多的值。
謝謝恩裏克! 16MB限制對我來說並不是什麼大問題,因爲每個賬戶都有自己的文檔和與之關聯的用戶 - 而且對最大用戶數量有限制。現在我通過向用戶添加密鑰並引用這些來解決問題。一些重構是必需的,但仍然是我的問題的最佳解決方案。 – tn4foxxah