উত্তর:
যদি আপনার পুনরাবৃত্তি হওয়ার মতো মনে হয় না, তবে চেষ্টা করুন FBFriendModel.find({ id:333 }).remove( callback );
বাFBFriendModel.find({ id:333 }).remove().exec();
mongoose.model.find
একটি ক্যোয়ারী দেয় , যার একটি remove
ফাংশন রয়েছে ।
মঙ্গুজ v5.5.3 এর জন্য আপডেট - remove()
এখন হ্রাস করা হয়েছে। ব্যবহার করুন deleteOne()
, deleteMany()
বাfindOneAndDelete() instead.
.exec()
তবে এটি মোটেও নয়। .exec()
প্রয়োজন, এটি ব্যবহার করার পার্শ্ব প্রতিক্রিয়া আছে কি না?
আপডেট: মঙ্গুজ সংস্করণ (5.5.3)
মুছে ফেলা () অবচিত করা হয় এবং আপনি এর পরিবর্তে মুছে ফেলা (), মুছে ফেলুন (), বা বাল্ক রাইট () ব্যবহার করতে পারেন।
এর হিসাবে "mongoose": ">=2.7.1"
আপনার সাথে সরাসরি ডকুমেন্ট অপসারণ করতে পারেন .remove()
বরং ডকুমেন্ট খুঁজে পেতে এবং তারপর এটি সরানোর যা আমার আরও দক্ষ এবং বজায় রাখা সহজ বলে মনে হয় তুলনায় পদ্ধতি।
উদাহরণ দেখুন:
Model.remove({ _id: req.body.id }, function(err) {
if (!err) {
message.type = 'notification!';
}
else {
message.type = 'error';
}
});
হালনাগাদ:
মঙ্গুজ হিসাবে, 3.8.1
বেশ কয়েকটি পদ্ধতি রয়েছে যা আপনাকে সরাসরি কোনও দস্তাবেজ সরাতে দেয়, বলুন:
remove
findByIdAndRemove
findOneAndRemove
আরও তথ্যের জন্য মঙ্গুজ এপিআই ডক্স পড়ুন ।
remove(query)
আপনি যদি দুর্ঘটনাক্রমে পাস করেন তবে আপনার সম্পূর্ণ সংগ্রহটি খালি করতে পারে query = {}
। সেই কারণে আমি পছন্দ করি findOneAndRemove(query)
যদি আমি কেবল একটি নথি অপসারণ করি ।
Model.remove({ _id: 'whatever' }).exec().then(...)
docs
নথিগুলির একটি অ্যারে। সুতরাং এটির কোনও mongooseModel.remove()
পদ্ধতি নেই।
আপনি পুনরাবৃত্তি করতে পারবেন এবং অ্যারের প্রতিটি দস্তাবেজ আলাদাভাবে মুছে ফেলতে পারেন।
বা - যেহেতু দেখে মনে হচ্ছে আপনি কোনও (সম্ভবত) অনন্য আইডি দ্বারা নথিগুলি সন্ধান করছেন - এর findOne
পরিবর্তে ব্যবহার করুন find
।
এটি আমার জন্য সংস্করণ 3.8.1 হিসাবে সেরা:
MyModel.findOneAndRemove({field: 'newValue'}, function(err){...});
এবং এটির জন্য কেবল একটি ডিবি কল প্রয়োজন। আপনি remove
অনুসন্ধান এবং অপসারণের জন্য পিয়োরের কোনও ক্রিয়াকলাপ সম্পাদন করবেন না এমনটি এটিকে ব্যবহার করুন।
pre '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);
}
});
(node:9132) DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
সাধারণ করতে আপনি ব্যবহার করতে পারেন:
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();
উপরের কোড অপসারণ সকল ব্যবহারকারীদের এলিস 'পরিবর্তে নামে প্রথম এক শুধুমাত্র।
যাইহোক, আমি এই জাতীয় দস্তাবেজগুলি সরাতে পছন্দ করি:
User.remove({...}).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();
});
এই উদাহরণে, মঙ্গুজ req.params.id এর সাথে মিল রেখে মুছে ফেলবে।
দস্তাবেজ অপসারণ করার জন্য, আমি ব্যবহার পছন্দ করি Model.remove(conditions, [callback])
সরানোর জন্য দয়া করে এপিআই ডকুমেন্টেশন উল্লেখ করুন: -
http://mongoosejs.com/docs/api.html#model_Model.remove
এই ক্ষেত্রে কোডটি হবে:
FBFriendModel.remove({ id : 333 }, function(err, callback){
console.log(‘Do Stuff’);
})
আপনি যদি মঙ্গোডিবি থেকে কোনও প্রতিক্রিয়ার জন্য অপেক্ষা না করে নথিগুলি সরিয়ে ফেলতে চান, কলব্যাকটি পাস করবেন না, তবে আপনাকে ফেরত ক্যোয়ারিতে এক্সকে কল করতে হবে
var removeQuery = FBFriendModel.remove({id : 333 });
removeQuery.exec();
আপনি কেবল সরিয়ে ফাংশনটির মধ্যে সরাসরি ক্যোয়ারীটি ব্যবহার করতে পারেন, সুতরাং:
FBFriendModel.remove({ id: 333}, function(err){});
আপনি সর্বদা অন্তর্নির্মিত ফাংশন ব্যবহার করতে পারেন:
var id = req.params.friendId; //here you pass the id
FBFriendModel
.findByIdAndRemove(id)
.exec()
.then(function(doc) {
return doc;
}).catch(function(error) {
throw error;
});
আপডেট: .remove()
অবহেলিত তবে এটি পুরানো সংস্করণগুলির জন্য এখনও কাজ করে
YourSchema.remove({
foo: req.params.foo
}, function(err, _) {
if (err) return res.send(err)
res.json({
message: `deleted ${ req.params.foo }`
})
});
অপসারণ () পদ্ধতি ব্যবহার করে আপনি মুছে ফেলতে পারবেন।
getLogout(data){
return this.sessionModel
.remove({session_id: data.sid})
.exec()
.then(data =>{
return "signup successfully"
})
}
এটি আমার পক্ষে কাজ করেছে, কেবল এটি চেষ্টা করুন:
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
})
});
Model.remove
সম্যক জৈনের উত্তর অনুসারে, আমি অ্যাসিঙ্ক অ্যাওয়েট ব্যবহার করি
let isDelete = await MODEL_NAME.deleteMany({_id:'YOUR_ID', name:'YOUR_NAME'});
আমি এই প্যাটার্নটি সত্যই অসিঙ্কে পছন্দ করি / সক্ষম এক্সপ্রেস / মঙ্গুজ অ্যাপ্লিকেশনটির জন্য অপেক্ষা করি :
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)
}))
db.collection.remove(<query>,
{
justOne: <boolean>,
writeConcern: <document>
})