我有以下脚本,我正在通过mongo shell运行。第一个帖子查询执行正常,我收到数据对象。此外,如果我在convertDate函数之后打印日期,则返回正确的日期。但是在第二个postdata findOne函数中,我无法获得任何显示任何内容的print语句。所以没有错误,但没有找到仍然显示“没有记录”的结果。我在这里错过了什么吗?
db.posts.find().forEach(function(data) {
var date = convertDate(data.created_at);
db.postdata.findOne({ company_id: data.company_id, date: date }, function(err, post){
if (err) { print('err' + err) }
if(post){
print('test' + post);
} else {
print('no record');
}
});
});
答案 0 :(得分:1)
findOne
是同步的,因此返回找到的帖子而不是传递给回调。
db.posts.find().forEach(function(data) {
var date = convertDate(data.created_at);
var post = db.postdata.findOne({ company_id: data.company_id, date: date });
if(post){
print('test' + post);
} else {
print('no record');
}
});