在mongoid中使用嵌入式文档与数组的优缺点是什么?

时间:2012-09-19 19:55:17

标签: mongodb mongoid

当您可以简单地使用数组数据类型时,使用嵌入式文档的优缺点是什么?两者看起来都与我相似(我无法通过谷歌搜索在线找到任何信息)。请提供示例案例!

1 个答案:

答案 0 :(得分:3)

就数据结构而言,您可以将嵌入式文档视为hashes或词典..而 arrays 是值列表。

使用MongoDB中的嵌入式文档:

  • 嵌入式文档具有命名字段,并且可以嵌入其他文档以进行富数据表示
  • 您可以使用dotted notation
  • 直接引用字段
  • 在嵌入文档字段上创建索引仅索引该字段
  • 您可以使用field selection来检索字段的子集。

使用MongoDB中的数组:

  • 您可以使用$push操作数组,例如$pop$pull$addToSet$all
  • 您可以使用$in$nin,{{1}}等运算符匹配数组值。
  • 您也可以使用operators
  • 在数组元素上创建索引索引数组的每个元素。
  • 您可以使用multikey indexes检索数组的子集。

Mongoid的$slice operator概念表达了嵌入式文档和数组的几种不同组合:

  • embeds_one - 单个嵌入文档
  • embeds_many - 一系列嵌入式文档