如您所知,在 mongoose
中,我们可以像这样删除所有 30 岁的用户:
User.find({age: 30}).remove(callback);
现在,用
find()
替换 findOne()
,我认为它应该只删除 1 个用户:User.findOne({age: 30}).remove(callback);
哦,不是我预期的,上面的代码也删除了 ALL 而不是 ONE
那么,为什么
findOne().remove()
删除 ALL 而不是 ONE?这是错误还是功能,为什么? 提前致谢!
P/S:我知道
findOneAndRemove()
会为我删除一个用户,但在这个问题中我想了解 findOne().remove() 最佳答案
我已经向 Mongoose 团队报告了这个问题,并得到了答复:
https://github.com/LearnBoost/mongoose/issues/1851#issuecomment-31355346
这是来自aheckmann的消息
“这是一个很好的捕获。findOne 只是将命令名称设置为运行,remove() 将其更改回一个 Rice 命令,但没有设置任何限制。我们可能应该在 3.9 中更改它,以便 findOne 设置
极限也一样。”
关于node.js - 了解 Mongoose findOne().remove(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20823150/