2017-01-16 76 views
0

假設我有一個包含名爲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

回答

1

這是直接從MongoDB。

MongoDB - AddToSet

如果該值是一個文件,MongoDB的判定原稿是重複,如果陣列中的現有文檔的待添加的文檔完全相符;即現有文檔具有完全相同的字段和值,並且字段的順序相同。因此,字段順序很重要,您不能指定MongoDB只比較文檔中的一部分字段,以確定文檔是否與現有數組元素相同。