dam*_*hat 11 mongoose mongodb node.js
如您所知,mongoose我们可以删除30岁以下的所有用户:
User.find({age: 30}).remove(callback);
Run Code Online (Sandbox Code Playgroud)
现在,替换find()为findOne(),我认为它应该只删除1个用户:
User.findOne({age: 30}).remove(callback);
Run Code Online (Sandbox Code Playgroud)
哦,不像我预期的那样,上面的代码也删除了ALL而不是ONE
那么,为什么要findOne().remove()删除ALL而不是ONE?这是一个错误或功能,为什么?
提前致谢!
P/S:我知道findOneAndRemove()会为我删除一个用户,但在这个问题中我想了解findOne().remove()
dam*_*hat 10
我已经向mongoose团队报告了这个问题,并得到了答复:
https://github.com/LearnBoost/mongoose/issues/1851#issuecomment-31355346
这是来自aheckmann的信息
"这是一个很好的捕获.getOne只是将命令名称设置为run,remove()将其更改为rice命令,但没有设置限制.我们应该在3.9中更改它,以便findOne也设置限制."
| 归档时间: |
|
| 查看次数: |
7508 次 |
| 最近记录: |