2

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

4

1 回答 1

4

就数据结构而言,您可以将嵌入式文档视为散列或字典……而数组是值的列表。

在 MongoDB 中嵌入文档:

  • 嵌入文档有命名字段,可以嵌入其他文档,实现丰富的数据表示
  • 您可以使用点分符号直接引用字段
  • 在嵌入的文档字段上创建索引只索引该字段
  • 您可以使用字段选择来检索字段的子集。

在 MongoDB 中使用数组:

  • 您可以使用、、和等运算符来操作数组。$push$pop$pull$addToSet
  • $all您可以使用, $in,等运算符匹配数组值$nin
  • 您还可以使用多键索引
  • 在数组元素上创建索引会索引数组的每个元素。
  • 您可以使用$slice运算符来检索数组的子集。

Mongoid 的关系概念表达了嵌入文档和数组的几种不同组合:

  • embeds_one - 单个嵌入文档
  • embeds_many - 嵌入文档的数组
于 2012-09-20T05:11:24.457 回答