使異步請求在循環中從嵌入式集合中刪除文件:Mongoose使用id()方法找不到匹配的文檔。造成異步錯誤刪除請求
_.each deletedItem, (item) ->
item.$delete()
不正常引發此錯誤:
{ message: 'No matching document found.', name: 'VersionError' }
當執行:
var resume = account.resumes.id(id);
resume.remove();
account.save(function (err, acct) {
console.log(err);
if(err) return next(err);
res.send(resume);
});
記錄account.resumes
並查看所有t的_id
他恢復了,我試圖通過id找到的文件存在於集合中。
530e57a7503d421eb8daca65 FIND:
{ title: 'gggff', _id: 530e57a7503d421eb8daca65 }
IN:
[{ title: 'asddas', _id: 530e57a7503d421eb8daca61 }
{ title: 'gggff', _id: 530e57a7503d421eb8daca65 }
{ title: 'ewrs', _id: 530e57a7503d421eb8daca64 }]
我想這與我正在異步執行這些要求,或有事實做一個版本問題,但我不知道如何解決它。
它沒有任何意義,我如何當我登錄了resumes
,我可以看到我resume
試圖找到,但如果我登錄:
log(account.resumes.id(id));
我得到undefined
。
UPDATE
我發現,我的問題是與版本控制。
http://aaronheckmann.blogspot.com/2012/06/mongoose-v3-part-1-versioning.html
但我仍然不確定如何解決它沒有禁用的版本,這是我不想做的事。
設置'schema.set( 'versionKey',虛假); '爲我工作! – SharpCoder