programing

ID 집합으로 여러 문서를 업데이트합니다.몽구스

iphone6s 2023. 6. 11. 10:25
반응형

ID 집합으로 여러 문서를 업데이트합니다.몽구스

mongoose가 id set으로 여러 문서를 업데이트하는 방법이 있는지 궁금합니다.예:

for (var i = 0, l = ids.length; i < l; i++) {
    Element.update({'_id': ids[i]}, {'visibility': visibility} ,function(err, records){
        if (err) {
            return false;
        } else {
            return true;
        };
    });
};

내가 알고 싶은 것은 몽구스가 다음과 같은 일을 할 수 있다는 것입니다.

Element.update({'_id': ids}, {'visibility': visibility}, {multi: true} ,function(err, records){
    if (err) {
        return false;
    }
});

여기서 ids는 ['id1', 'id2', 'id3'] - 샘플 배열과 같은 ID 배열입니다.찾기 위한 질문과 동일합니다.

아마 그럴 겁니다.그리고 업데이트를 위해 mongodb 쿼리에서 $in 연산자를 사용하여 호출됩니다.

db.Element.update(
   { _id: { $in: ['id1', 'id2', 'id3'] } },
   { $set: { visibility : yourvisibility } },
   {multi: true}
)

당신이 필요한 것은 몽구스에서 $in을 구현하는 방법을 찾는 것입니다.

업데이트 중 {multi:true}이(가) 필요 없는 많은 기능

db.collectionName.updateMany(
    {
        _id:
            {
                $in:
                    [
                        ObjectId("your object id"),
                        ObjectId("your object id")

                    ]
            }
    },
    {
        $inc: { quantity: 100 }

    })

포인트를 하나 더 추가하고 싶습니다. $in을 사용하여 여러 문서를 가져올 수 있습니다.

 db.collectionName.find(
        {
            _id:
                {
                    $in:
                        [
                            ObjectId("your object id"),
                            ObjectId("your object id")

                        ]
                }
        })

집합에 대해 지정된 필터와 일치하는 모든 문서를 업데이트합니다.

let ids = ["kwwe232244h3j44jg3h4", "23h2u32g2h3b3hbh", "fhfu3h4h34u35"];
let visibility = true;

Element.updateMany({_id: {$in: ids}}, 
   { $set: { visibility } }, 
   {multi: true} ,
   function(err, records){
       if (err) {
           return false;
       }
});

더 많은 것을 보다

언급URL : https://stackoverflow.com/questions/20096885/update-multiple-documents-by-id-set-mongoose

반응형