使异步请求在循环中从嵌入式集合中删除文件: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