[javascript] Node.js Mongoose를 사용하여 문서를 어떻게 제거합니까?

FBFriendModel.find({
    id: 333
}, function (err, docs) {
    docs.remove(); //Remove all the documents that match!
});

위의 방법으로 작동하지 않는 것 같습니다. 기록은 여전히 ​​존재합니다.

누군가 고칠 수 있습니까?



답변

당신이 반복하는 기분하지 않는 경우, 시도 FBFriendModel.find({ id:333 }).remove( callback );또는FBFriendModel.find({ id:333 }).remove().exec();

mongoose.model.find반환 쿼리 가지고, remove기능 .

Mongoose v5.5.3 업데이트- remove()더 이상 사용되지 않습니다. 사용 deleteOne(), deleteMany()또는findOneAndDelete() instead.


답변

업데이트 : 몽구스 버전 (5.5.3)

remove ()는 더 이상 사용되지 않으며 대신 deleteOne (), deleteMany () 또는 bulkWrite ()를 사용할 수 있습니다.

현재 문서를 찾은 다음 제거하는 것이 아니라 방법을 "mongoose": ">=2.7.1"사용하여 직접 문서를 제거 할 수 있습니다 .remove().

예를보십시오 :

Model.remove({ _id: req.body.id }, function(err) {
    if (!err) {
            message.type = 'notification!';
    }
    else {
            message.type = 'error';
    }
});

최신 정보:

mongoose 현재 3.8.1문서를 직접 제거 할 수있는 몇 가지 방법이 있습니다.

  • remove
  • findByIdAndRemove
  • findOneAndRemove

자세한 내용은 몽구스 API 문서 를 참조하십시오 .


답변

docs문서의 배열입니다. mongooseModel.remove()방법 이 없습니다 .

배열의 각 문서를 개별적으로 반복하고 제거 할 수 있습니다.

또는- findOne대신 (아마도) 고유 ID로 문서를 찾는 것처럼 보이기 때문 입니다 find.


답변

이것은 나를 위해 버전 3.8.1에서 최고입니다.

MyModel.findOneAndRemove({field: 'newValue'}, function(err){...});

그리고 하나의 DB 호출 만 필요합니다. remove검색 및 제거에 대한 조치를 수행하지 않을 경우이를 사용하십시오 .


답변

간단히

FBFriendModel.remove().exec();


답변

mongoose.model.find()함수가있는 쿼리 개체 를 반환 remove()합니다.

당신이 사용할 수있는 mongoose.model.findOne()하나의 고유 한 문서 만 제거하려는 경우에도 .

그렇지 않으면 먼저 문서를 검색 한 다음 제거하는 전통적인 접근 방식을 따를 수 있습니다.

yourModelObj.findById(id, function (err, doc) {
    if (err) {
        // handle error
    }

    doc.remove(callback); //Removes the document
})

다음은 model객체에서 문서를 제거하기 위해 다음 중 하나를 수행 할 수 있는 방법입니다 .

yourModelObj.findOneAndRemove(conditions, options, callback)

yourModelObj.findByIdAndRemove(id, options, callback)

yourModelObj.remove(conditions, callback);

var query = Comment.remove({ _id: id });
query.exec();


답변

remove()더 이상 사용되지 않습니다. 사용 deleteOne(), deleteMany()또는bulkWrite() .

내가 사용하는 코드

TeleBot.deleteMany({chatID: chatID}, function (err, _) {
                if (err) {
                    return console.log(err);
                }
            });