MongoDB查找-嵌入式阵列索引

时间:2018-12-15 19:35:39

标签: mongodb mongodb-query aggregation-framework

MongoDB允许索引子文档数组,如下所述:

Index Arrays with Embedded Documents

在执行$ lookup后,子文档数组仅存在于文档的投影中时,此信息是否仍然有效?

以这种模式为例:

cats collection
{
  _id: 1,
  name: "betty"
}
{
  _id: 2,
  name: "britches"
}
{
  _id: 3,
  name: "bailey"
}

catToys collection
{
  _id: 1,
  name: "mouse",
  toyType: 1
  catId: 1
}
{
  _id: 2,
  name: "yarn",
  toyType: 2
  catId: 1
}
{
  _id: 3,
  name: "feather",
  toyType: 2
  catId: 3
}

该查询基于catId对catToys执行查找,并将catToys的集合作为数组字段插入cat文档中。我想在toyType上创建一个索引。根据上面链接的文章的信息,潜在的索引应如下所示:

{ "catToys.toyType": 1 }

由于catToys仅在完成查找后出现在文档上,并且数据不在文档的开头,因此似乎无法像这样对它进行索引。不管怎样,我很好奇这是否正确。

如果怀疑无法在文档上创建索引来覆盖查询,那么还有其他选择吗?似乎对次要集合建立索引也没有用,因为查找操作是在查找完成之后发生的,因此从这种意义上讲,数据已经是父文档的一部分。

0 个答案:

没有答案