addToSet 正常是重复就不能添加,但是添加如下结构,重复还是能加入
//加入添加的数组格式为:
const list=[
{id:1,a:1,b:2}
]
// 1.不能控制重复的添加语句:
// each 前加不加$没有区别,我一直没搞懂它的作用
.update({
data: {
callInList:_.addToSet({
each: list,
})
}
})
//2.能控制重复的写法:
// 在where条件下加控制:
// 伪代码如下:
// 注意这种要在list里添加唯一id,
const updateResult = await db.collection('集合名称')
.where({
// 注意不加 _id,所以记录都会 add,这里的id不是list里的id,是集合每条记录的id(当然这里是你想哪条记录更新,就写什么条件)
_id: id,
// 控制重复的语句,list 是写到 callInList
"callInList.id": { $ne: list[0].id }
})
.update({
data: {
callInList:_.addToSet({
$each: list,
})
}
})
// 最后数据结构是:
callInList:[{第一次list的记录},{第二次list记录}]
//如果第三次与第二次或第一次,list 里id重复就不会添加成功