评论

addToSet 重复,添加对象数据会重复的处理办法

addToSet 控制重复的办法

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重复就不会添加成功
最后一次编辑于  2022-01-08  
点赞 0
收藏
评论
登录 后发表内容