$addToSet
仅确保没有重复项
添加到集合中,并且不影响现有重复项。
$addToSet
不保证修改集中元素的特定顺序。
如果该值为数组,$addToSet
则将整个数组作为单个元素附加。
考虑test
包含数组字段的集合中的文档letters
:
以下操作将数组追加到
字段:[ "c", "d" ]
letters
的letters
阵列现在包括数组作为元素:[ "c", "d" ]
如果值为文档,则如果数组中的现有文档与要添加的文档完全匹配,则MongoDB会确定该文档为重复文档;也就是说,现有文档具有完全相同的字段和值,并且字段的顺序相同。因此,字段顺序很重要,您不能指定MongoDB仅比较文档中字段的子集来确定文档是否与现有数组元素重复。
考虑inventory
包含以下文档的集合:
由于数组中不存在此元素"accessories"
,因此以下操作将其添加到
数组中:tags
"accessories"