mongoose人口 – callback与执行
在Node.js / Mongoose / Mongo上
SomeModel.findOne({_id: id}, callback).populate('ref')
相当于
SomeModel.findOne({_id: id}).populate('ref').exec(callback)
“ref”是单个文档(不是数组)。
问题在于使用第一种语法时,“callback”被调用时,“子”文档被随机填充。
我不知道内部,但我会说他们是不一样的。
第一个可能是这样的:
- find文件
- 用文档调用callback
- 填充ref(这是通过一个单独的查询完成的)
第二个可能是这样的:
- find文件
- 填充参考
- 在ref解决之后调用callback函数
您正在见证的随机性是因为“填充ref”调用时间足够快,可能会在callback中使用它之前填充文档。 换句话说: 竞赛条件 。