addToSet如何确定重复?

时间:2017-01-16 08:13:38

标签: mongodb

假设我有一个包含名为Months的数组的文档。数组中的每个元素都有一个int字段,表示哪个月和哪个月。它指的是(yyyyMM),例如201612,201701等

每个此类元素还包含与该特定月份相关的其他字段。例如int numOfItems,string Country等。

现在,假设我有这样的文档,数组中只有2个元素:

Months[0].month == 201612
Months[1].month == 201701

然后,我使用Months[1].month == 201701调用 addToSet

addToSet如何确定这是否重复?

是否会检查并比较Months[1]所有子元素来执行此操作?它只检查Months数组中元素的索引吗?

1 个答案:

答案 0 :(得分:4)

这是直接来自MongoDB。

MongoDB - AddToSet

  

如果值是文档,如果数组中的现有文档与要添加的文档完全匹配,则MongoDB确定文档是重复的;即,现有文档具有完全相同的字段和值,并且字段的顺序相同。因此,字段顺序很重要,您无法指定MongoDB仅比较文档中字段的子集来确定文档是否与现有数组元素重复。