假设我有一个文档,其中包含名为的数组Months
。数组中的每个元素都有一个int字段,指示其所指的月份和年份(yyyyMM),例如201612、201701等。
每个此类元素还包含与该特定月份有关的其他字段。例如int numOfItems,字符串Country等。
现在,假设我有这样的文档,数组中只有2个元素:
Months[0].month == 201612 Months[1].month == 201701
然后,我打电话addToSet与Months[1].month
== 201701。
addToSet如何确定这是否重复?
它是否检查并比较的所有子元素Months[1]
?它仅检查Months数组中元素的索引吗?
这直接来自MongoDB。
MongoDB-AddToSet
如果值为文档,则如果数组中的现有文档与要添加的文档完全匹配,则MongoDB会确定该文档为重复文档;也就是说,现有文档具有完全相同的字段和值,并且字段的顺序相同。因此,字段顺序很重要,您不能指定MongoDB仅比较文档中字段的一部分来确定文档是否与现有数组元素重复。