强制mongoose.savecallback等待写入完成

我认为这很简单,但我似乎无法得到它的工作。 我有两个进程。 一个消费数据,然后是另一个装饰它。 他们通过队列服务连接。 第一个“保存”文档,然后排队第二个:

// 'post' is a mongoose object post.save(function (err) { if (!err) { self.decorate('post', post.service, post.id); } }); 

服务二接收队列消息,然后尝试查询队列。 但没有find该项目。 该项目会被写入,如果几秒钟后重新运行排队的消息,它会发现它正确。

看起来第二个服务试图在写入完成之前运行。

我如何强制Mongoosecallback等待/同步行动? 我已经尝试在连接选项中添加“safe:true”。

请考虑在save()方法中使用promise。

 post.save().then(function (savedPost) { self.decorate('post', savedPost.service, savedPost.id); });