我使用mongoid和rails 4.我有一個具有類型散列的'數據'字段的模型。該字段將存儲動態鍵值對。我知道我們可以將索引添加到靜態字段,但可以將索引添加到「數據」的關鍵字以及應該如何完成。使用動態鍵值向mongodb集合散列字段添加索引
回答
您可以只添加你如果指數在一個充滿活力的領域都沒有, 像這樣以同樣的方式:
class Person
field :data, type: Hash
index('data.foo' => 1)
end
我非常肯定Mongoid不驗證,如果字段存在,所以您可以在模型上創建任何索引。另外,如果您沒有包含該字段的所有文檔,我還會將sparse
選項添加到索引,因此您可以在內存中節省一些空間。
在運行時,我該如何知道其中一個鍵是'foo'。 100個不同的用戶可能會發送100個不同的鍵值對。 –
我明白了,所以如果你不知道密鑰,你將無法創建索引,這就是mongodb的設計。 –
這可以通過使用'輪胎'寶石來進行elasticsearch嗎? –
- 1. 添加字段是唯一索引到集合中的MongoDB
- 2. 將索引添加到MongoDB集合哈希字段
- 3. 使用動態字段索引後添加新字段solr
- 4. 如何爲MongoDB集合添加索引?
- 5. 在MongoDB中動態添加的字段上創建索引
- 6. 添加散列鍵值
- 7. MongoDB將低基數字段添加到複合索引?
- 8. MongoDB聚合字段添加
- 9. MongoDB - 使用索引的一個集合
- 10. 如何在MongoDB或Mongoid中爲散列字段建立索引?
- 11. Solr索引的MongoDB集合
- 12. MongoDB複合索引與多鍵字段和範圍查詢
- 13. MongoEngine:向動態文檔添加字段
- 14. 動態添加索引到列表
- 15. 將索引添加到mysql動態列
- 16. 如何使用mongodb-erlang索引字段
- 17. MongoDB使用外鍵將字段複製到另一個集合
- 18. 在MongoDB中添加一個字段到加蓋集合中
- 19. Mongodb-在現有集合上添加唯一索引
- 20. Mongodb如果添加新的索引已經存在的集合
- 21. 動態添加字段到C#中的集合?
- 22. 通過腳本在Drupal 7中動態添加「字段集合」?
- 23. 在Mongodb集合中添加一列
- 24. 向模式添加新的動態字段而不重新索引
- 25. 通過mongodb收集檢查字段值太大,以索引
- 26. 檢索字段的值數組從MongoDB的集合
- 27. 使用LINQ來搜索MongoDB集合,它是動態構建的
- 28. 使用散列索引
- 29. MongoDB向子文檔添加新字段
- 30. 散列數組並向其添加值
作爲一般指導,永久密鑰總是更好。我不會擁有帶動態密鑰的散列字段,而會總喜歡擁有一組哈希值。如果您需要索引並希望擁有更多可維護的代碼,那麼''{{key:dynamic_key1,value:value1},{key:dynamic_key2,value:value2}]'優於'{dynamic_key1:value1,dynamic_key2:value2} 。 – rubish