addToSet如何确定重复?

问题描述:

假设我有一个包含名为Months的数组的文档。数组中的每个元素都有一个int字段,用于指示它引用的月份(yyyyMM),例如, 201612 201701等addToSet如何确定重复?

每个这样的元素还包含附加的字段,属于那个特定的月份。例如INT numOfItems,串国家等

现在,假设我有这样文件与阵列中只有2个元素:

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

然后,我打电话addToSetMonths[1].month == 201701.

addToSet如何确定这是否重复?

是否检查并比较全部要素Months[1]要做那个?它只检查Months数组中元素的索引吗?

+1

它做了一个对象比较 – Sammaye

+0

@Sammaye谢谢!为了澄清你的答案,你的意思是检查和比较要添加的元素的所有子元素,对吧? – datps

+1

事实上,如果您想通过单个属性进行比较或者您需要为查询添加附加条件 – Sammaye

这是直接从MongoDB。

MongoDB - AddToSet

如果该值是一个文件,MongoDB的判定原稿是重复,如果阵列中的现有文档的待添加的文档完全相符;即现有文档具有完全相同的字段和值,并且字段的顺序相同。因此,字段顺序很重要,您不能指定MongoDB只比较文档中的一部分字段,以确定文档是否与现有数组元素相同。