是否可以獲取從MongoDB中刪除的文檔?如何在MongoDB中刪除文檔?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
謝謝!
是否可以獲取從MongoDB中刪除的文檔?如何在MongoDB中刪除文檔?
result = db.things.remove({_id: id})
// is there a result.removedObjects?
謝謝!
這是可能的,但它需要一個不同的命令。您正在尋找findAndModify
command。
如果您將選項設置爲{query: ..., remove: true, new: false}
,您將刪除單個文檔並返回已刪除的文檔。
一些注意事項:
new
是在許多語言中的關鍵字,請確保您正確包裝標誌的文本。findAndModify
只能使用單個文檔。這適用於刪除_id
,但不適用於範圍刪除。db.collection('mycollection').findOneAndDelete({
id: '123456'
}, function (error, response) {
response.value;// returns the deleted object, but no longer exists in the database
});
儘管這段代碼可以解決這個問題,[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-答案)確實有助於提高發布的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess 2016-11-23 10:50:28
當'remove:true'時忽略'new'參數嗎?在[node-mongodb-native docs]中找到它(https://github.com/mongodb/node-mongodb-native#find-and-modify)和[here](http://docs.mongodb.org/手動/參考/命令/ findAndModify /) – balazs 2014-01-11 19:45:53
很可能它被忽略。這些文檔是在寫出這個答案後大約12個月寫出來的。這表明,你可能是對的,考慮到返回值是相同的,「new」標誌可能會被忽略。 – 2014-01-12 02:55:29
如何去除返回符合條件的文檔的範圍? – thethakuri 2016-06-04 07:03:26