2012-09-19 22 views
1

當您可以簡單地使用數組數據類型時,使用嵌入式文檔有哪些優缺點?這兩者看起來都與我相似(並且我無法通過谷歌搜索在線找到任何信息)。請提供示例案例!在mongoid中使用嵌入式文檔與數組有什麼優缺點?

+0

數組是陣列數組 - 數據的無類型向量。使用嵌入式文檔,您可以從庫(mongoid)獲得更多支持。 –

回答

3

在數據結構方面,你能想到的嵌入文檔hashes或字典。雖然陣列是值的列表。

隨着MongoDB中嵌入文檔:

  • 嵌入文檔已命名字段,並可以嵌入其他文件豐富的數據表示
  • 你可以直接使用dotted notation
  • 的嵌入式創建索引的參考場文檔字段只索引該字段
  • 您可以使用field selection來檢索字段的子集。

隨着MongoDB的數組:

  • 您可以使用操作數組operators$push$pop$pull$addToSet
  • 您可以使用運算符(例如$all,$in,$nin)來匹配數組值。
  • 您還可以使用multikey indexes
  • 在數組元素上創建索引索引數組的每個元素。
  • 您可以使用$slice operator來檢索數組的子集。

relations Mongoid的概念表示嵌入文檔和陣列的幾個不同的組合:

  • embeds_one - 一個單一的嵌入文檔
  • embeds_many - 嵌入文檔