찾다

 >  Q&A  >  본문

mongodb - $addToSet如何指定字段来作为是否存在的检查字段

有个文档,它的一个属性,是一个文档数组,我想往数组里面添加一个文档,如果存在,则不添加,这里的判断是否存在是如何判断的,是所有属性都相同才算?能不能指定一个属性
{_id:0,
user:[{id:1,name:a}]
}
比如,上面这条记录,我想往user里面添加数据,如果id为1,则表示已经存在,则不添加,否则就添加到user数组中
$addToSet能实现这种需求不
谢谢

ringa_leeringa_lee2757일 전897

모든 응답(1)나는 대답할 것이다

  • 世界只因有你

    世界只因有你2017-05-02 09:27:30

    $addToSet으로는 필요한 하위 문서의 고유성을 얻을 수 없습니다. 참고할 수 있는 두 가지 아이디어가 있습니다:

    1. 비즈니스에서 복합 고유 인덱스를 만들 수 있는지 확인해보세요

    예: 텍스트 {_id, name, number,user[{id,name}]}의 name 및 user.id에 대한 고유 복합 인덱스를 생성합니다.

    2. 코드 제어

    으아악

    업데이트하기 전에 $ne 또는 $nin을 사용하여 기존 ID에 user.id가 있는지 확인하세요. 존재하지 않으면 업데이트할 수 있습니다.

    참고로.

    MongoDB를 사랑해주세요! 재미있게 보내세요!

    회신하다
    0
  • 취소회신하다