我遇到以下錯誤,但無法完全理解錯誤背後的理解。執行刪除時的Mongoose錯誤
CastError: Cast to ObjectId failed for value "XYZ" at path "_id" for model "Partner"
我有我的架構定義如下
var partnerList = new Schema (
{
partnerName: String,
supportedProducts: [String]
},
{
collection: 'partnerList'
}
);
module.exports = mongoose.model('Partner', partnerList);
我刪除功能
delete: function (req, res) {
var removePartner = req.params.partnerName;
var promise = Partner.findByIdAndRemove(removePartner).exec();
promise.then(function removePartner(val) {
console.log('partner value removed');
res.send(val);
}).catch(function catchError(err){
console.error(err);
throw err;
});
}
我試圖做出請求使用 本地主機我節點應用服務的功能:8443/data/XYZ,其中我傳遞值'XYZ'作爲參數。該值用於從數據庫中刪除適當的對象。
看起來remove()在我的情況下應該做的工作,但出於好奇心,如果我找到一個和刪除()我將如何訪問Objectid該參數值? – user8222014
您將使用URL中的ObjectId而不是合作伙伴名稱(XYZ)進行刪除API調用。例如:http:// localhost:8443/data/59558ccd7acc4dd63ea88988 - >查看我更新的答案。 – benjiman
然後我想這不是非常用戶友好的,因爲ObjectIds真的不是爲人類而製作的;)但是通常你不會要求用戶輸入任何內容來刪除一個項目。他只需點擊合作伙伴列表中的條目上的鏈接(例如刪除),然後應用程序就會知道並使用該標識符來執行刪除操作。但是因爲我不確切知道你在建什麼樣的應用程序,所以我不能說出最適合你的情況。 – benjiman