mongodb.find不工作

时间:2014-03-03 18:55:25

标签: javascript mongodb mongoose

我有以下脚本,我正在通过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');
    }
  });

});

1 个答案:

答案 0 :(得分:1)

shell中的

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');
  }
});