我正在使用Meteor和MongoDB开发一个应用程序,我正在尝试使用嵌套回调来访问新插入的文档,如下所示。但是,即使我在insert语句的成功回调中,我仍然会在数据库中没有匹配的文档时收到错误。我不确定为什么Mongo找不到我刚插入的文件。我知道这些方法是异步的,但我假设一旦find函数返回,回调将允许我访问新插入的文档。我尝试将查找放在insert语句之外,并使用自己的回调并得到相同的错误。
我也附上了错误信息。任何有关此事的帮助将不胜感激!
insertEntryForm.call(entryFormObj, (error, result) => {
if (error) {
console.log(error);
toastr['error'](error.reason);
}
else {
toastr['success']("Entry form created!");
EntryForms.find({_id: result}, function(err, res) {
console.log(res);
});
}
}
);
答案 0 :(得分:1)
从文档和Inserting and updating - MongoDB提供的示例中,插入回调的第二个参数是插入的对象,在find
中,您正在查找{{1}的文档它应该是result
,所以这应该有效:
result._id
答案 1 :(得分:0)
原来这个问题与我在Meteor中发布/订阅我的对象的方式有关。我在router.js文件中注册了我的订阅,然后能够按预期访问我的收藏。根据我对Meteor的小经验,粉笔这个。