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
함수를 가진 쿼리를 반환합니다.
Mongoose v5.5.3 업데이트는 현재 권장되지 않습니다.사용하다deleteOne()
,deleteMany()
또는findOneAndDelete() instead.
업데이트: Mongoose 버전 (5.5.3)
remove()는 권장되지 않으며 대신 deleteOne(), delete Many() 또는 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
자세한 내용은 mongoose API 문서를 참조하십시오.
docs
는 문서의 배열입니다.그래서 이 제품에는mongooseModel.remove()
방법.
배열의 각 문서를 개별적으로 반복 및 제거할 수 있습니다.
또는 (아마도) 고유 ID로 문서를 찾고 있는 것처럼 보이므로 - 사용findOne
대신find
.
이것은 버전 3.8.1에서 가장 좋은 버전입니다.
MyModel.findOneAndRemove({field: 'newValue'}, function(err){...});
또한 DB 콜은 1회만 필요합니다.아무것도 수행하지 않는 경우에 사용합니다.remove
검색 및 제거 작업보다 우선합니다.
remove()
는 폐지되었습니다.사용하다deleteOne()
,deleteMany()
또는bulkWrite()
.
사용하는 코드
TeleBot.deleteMany({chatID: chatID}, function (err, _) {
if (err) {
return console.log(err);
}
});
간단히 하다
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();
일반화하기 위해 다음을 사용할 수 있습니다.
SomeModel.find( $where, function(err,docs){
if (err) return console.log(err);
if (!docs || !Array.isArray(docs) || docs.length === 0)
return console.log('no docs found');
docs.forEach( function (doc) {
doc.remove();
});
});
이를 위한 또 다른 방법은 다음과 같습니다.
SomeModel.collection.remove( function (err) {
if (err) throw err;
// collection is now empty but not deleted
});
하나 찾아서 제거할 때 주의하세요!
User.findOne({name: 'Alice'}).remove().exec();
위의 코드는 첫 번째 사용자가 아닌 'Alice'라는 이름의 모든 사용자를 삭제합니다.
덧붙여서, 다음과 같은 문서를 삭제하는 것을 선호합니다.
User.remove({...}).exec();
또는 콜백을 제공하고 exec()을 생략합니다.
User.remove({...}, callback);
model.remove({title:'danish'}, function(err){
if(err) throw err;
});
참고 자료: http://mongoosejs.com/docs/api.html#model_Model.remove
삭제할 개체를 하나만 찾는 경우
Person.findOne({_id: req.params.id}, function (error, person){
console.log("This object will get deleted " + person);
person.remove();
});
이 예에서는 Mongoose는 일치하는 req.params.id에 따라 삭제됩니다.
.remove()
와 같이 동작합니다..find()
:
MyModel.remove({search: criteria}, function() {
// removed.
});
나는 약속 표기법을 선호한다. 예를 들어, 당신이 필요한 곳에.
Model.findOneAndRemove({_id:id})
.then( doc => .... )
문서를 삭제할 때, 다음을 사용하는 것이 좋습니다.Model.remove(conditions, [callback])
삭제에 대해서는 API 매뉴얼을 참조해 주십시오.
http://mongoosejs.com/docs/api.html#model_Model.remove
이 경우 코드는 다음과 같습니다.
FBFriendModel.remove({ id : 333 }, function(err, callback){
console.log(‘Do Stuff’);
})
MongoDB로부터의 응답을 기다리지 않고 문서를 삭제하려면 콜백을 전달하지 말고 반환된 쿼리에서 exec을 호출해야 합니다.
var removeQuery = FBFriendModel.remove({id : 333 });
removeQuery.exec();
제거 기능 내에서 쿼리를 직접 사용하면 다음과 같은 작업을 수행할 수 있습니다.
FBFriendModel.remove({ id: 333}, function(err){});
언제든지 Mongoose 내장 기능을 사용할 수 있습니다.
var id = req.params.friendId; //here you pass the id
FBFriendModel
.findByIdAndRemove(id)
.exec()
.then(function(doc) {
return doc;
}).catch(function(error) {
throw error;
});
데트트 update:.remove()
에서는 여전히 합니다.
YourSchema.remove({
foo: req.params.foo
}, function(err, _) {
if (err) return res.send(err)
res.json({
message: `deleted ${ req.params.foo }`
})
});
비동기/대기 지원 Express/Mongoose 앱에서 이 패턴을 매우 좋아합니다.
app.delete('/:idToDelete', asyncHandler(async (req, res) => {
const deletedItem = await YourModel
.findByIdAndDelete(req.params.idToDelete) // This method is the nice method for deleting
.catch(err => res.status(400).send(err.message))
res.status(200).send(deletedItem)
}))
remove() 메서드를 사용하여 삭제할 수 있습니다.
getLogout(data){
return this.sessionModel
.remove({session_id: data.sid})
.exec()
.then(data =>{
return "signup successfully"
})
}
Samyak Jain의 답변에 따르면, 나는 비동기 대기를 사용합니다.
let isDelete = await MODEL_NAME.deleteMany({_id:'YOUR_ID', name:'YOUR_NAME'});
이 방법은 효과가 있었습니다.이것만 시도해 보세요.
const id = req.params.id;
YourSchema
.remove({_id: id})
.exec()
.then(result => {
res.status(200).json({
message: 'deleted',
request: {
type: 'POST',
url: 'http://localhost:3000/yourroutes/'
}
})
})
.catch(err => {
res.status(500).json({
error: err
})
});
하나의 문서를 삭제하려면 deleteOne() 또는 remove()를 single:true와 함께 사용하고 delete Many() 또는 remove()를 사용하여 여러 문서를 삭제합니다.
- deleteOne() 사용
syntax
Model.deleteOne({conditions},function(err){});
Example
Model.deleteOne({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
2. remove() 사용
syntax
Model.remove({conditions},{single:true},function(err){});
Example
Model.remove({title:"hi"},{single:true},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
3. delete Many() 사용
syntax
Model.deleteMany({conditions},function(err){});
Example
Model.deleteMany({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
- remove() 사용
syntax
Model.remove({conditions},function(err){});
Example
Model.remove({title:"hi"},function(err){
if(err)
{
res.send(err);
}
else{
res.send("deleted");
}
});
있으면_id
가능한 입니다.findByIdAndDelete(id)
은 리고아아아아아 and '어느 정도'는요.findOneAndDelete({ _id: id })
.
import Question from '../models/Question';
const deleteQuestion = (questionId: string) => {
try {
Question.findByIdAndDelete(questionId);
} catch (e) {
console.error(e);
}
};
(여기서)questionId
documentIddocumentId)_id
)
db.collection.remove(<query>,
{
justOne: <boolean>,
writeConcern: <document>
})
언급URL : https://stackoverflow.com/questions/5809788/how-do-i-remove-documents-using-node-js-mongoose
'source' 카테고리의 다른 글
HTML을 포함하는 문자열을 twig 템플릿에 표시하는 방법 (0) | 2023.01.19 |
---|---|
org.hsqldb.HsqlException: 사용자에게 권한이 없거나 개체를 찾을 수 없습니다. DATE_FORMAT (0) | 2023.01.19 |
키 이름에 따라 HashMap에서 문자열 값 가져오기 (0) | 2023.01.19 |
도우미 클래스와 유틸리티 클래스의 차이점은 무엇입니까? (0) | 2023.01.19 |
템플릿의 모델 인스턴스 필드 이름 및 값에 대해 반복 (0) | 2023.01.19 |