programing

MongoDb: 존재하지 않는 경우 요소를 배열에 추가합니다.

sourcejob 2023. 3. 5. 09:44
반응형

MongoDb: 존재하지 않는 경우 요소를 배열에 추가합니다.

node.js와 Mongo.db를 사용하고 있습니다(Mongo에 새로 접속했습니다).다음과 같은 문서가 있습니다.

Tag : {
   name: string,
   videoIDs: array
}

즉, 서버는 다음과 같은 JSON을 수신합니다.

JSON: { 
    name: "sport",
    videoId: "34f54e34c"
}

이 JSON에서는 같은 이름의 태그를 검색하여 어레이에 다음 태그가 있는지 확인해야 합니다.videoId그렇지 않으면 어레이에 삽입합니다.

어레이를 확인하고 데이터를 추가하려면 어떻게 해야 합니까?

사용할 수 있습니다.$addToSet요소를 배열에 추가하기 전에 존재 여부를 확인하는 연산자.

db.tags.update(
    {name: 'sport'},
    {$addToSet: { videoIDs: "34f54e34c" } }
);

이 업데이트 스테이트먼트 예에서는 mongoDB가 일치하는 TAG 문서를 찾습니다.name == sport그 후, 그 다음,videoIDs배열에 포함34f54e34c그렇지 않은 경우 어레이에 추가합니다.

상세 사용방법$addToSet여기서 읽어주세요.

테스트하지 않았습니다만, 다음과 같이 시험해 볼 수 있습니다.

yourDb.find({ name: "sport", 
              videoIDs: { $in: ["34f54e34c"] } })
      .update({$addToSet: { videoIDs: "34f54e34c" }});

필요한 경우 nodeJs 구현의 MongoDb부터 시작할 수 있습니다.

http://jsfiddle.net/1ku0z1a1/

$addToSet오퍼레이터가 문서의 빈 배열 또는 기존 배열을 확인합니다.

 db.col_name.update({name :"name_for_match"},{$addToSet :  { videoId : "video_id_value"}})

언급URL : https://stackoverflow.com/questions/38970835/mongodb-add-element-to-array-if-not-exists

반응형