[英]Mongoose deleteMany with "like" operator
[英]How to perform mongoose deleteMany() with query operators?
我想從最近為特定用戶創建的帖子開始刪除 X 個帖子。
如何使用 mongoose 應用此邏輯,以便我可以只執行一個數據庫操作,而不必先查詢這些帖子並一一刪除它們?
我發現使用帶有 $ 的查詢和投影運算符非常令人困惑,任何幫助將不勝感激。
下面我添加了關於它應該如何工作的偽代碼。
謝謝!
const userId = "123456"
const deleteCount = 6
const deletedPosts = await Post.deleteMany({
.where { userid == userId) }
.sort({createdAt: -1}) // delete by most recent
.limit(deleteCount) // only delete 6 (most recent) posts
}, {new: true}) // return results of operation
console.log(deletedPosts.deletedCount) // -> should be "6"
使用 deleteMany 或 findAndModify 時不能設置限制。 因此,如果您想精確限制刪除的文檔數量,您需要分兩步完成。
db.getCollection('users').find({}, {class : 4}) .limit(2) .sort({StudentAge: -1}) .toArray() .map(function(doc) { return doc._id; }); //returns the array of id's
db.getCollection('users').deleteMany({_id: {$in: [ "s3", "s4" ]}})//put the array of id's
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.