使用fetch()从meteor中的mongodb集合检索数据

使用fetch()从meteor中的mongodb集合检索数据,mongodb,meteor,Mongodb,Meteor,我正在尝试使用此代码从meteor中的一个集合中获取数据 ShareUserLogs.find({"_id":shared_id}).fetch()[0] 共享_id来自route参数,没有问题 当我使用ShareUserLogs.find({“\u id”:shared\u id})时返回[object object] ShareUserLogs.find({"_id":shared_id}).fetch()[0] works fine in console and in mongodb t

我正在尝试使用此代码从meteor中的一个集合中获取数据

ShareUserLogs.find({"_id":shared_id}).fetch()[0]
共享_id来自route参数,没有问题

当我使用
ShareUserLogs.find({“\u id”:shared\u id})时
返回
[object object]

ShareUserLogs.find({"_id":shared_id}).fetch()[0] works fine in console and in mongodb terminal but in code it returns `undefined`.
有时它也能工作,但大多数时候返回未定义的
,我搜索了这个问题,但找不到任何解决方案。看了这个,但没有帮助,还有一些其他问题

请帮我修一下这个。
提前感谢。

假设您在meteor helper中执行此操作,您可以执行以下操作:

myHelper() {
  return ShareUserLogs.findOne({"_id":shared_id});
}

您可能会遇到的问题是,当您订阅数据时,它不会立即可用。因此,您的
find()
将作为一个包含零项的游标返回,因此访问
fetch()
中的第0项将出错。如果在助手中不使用此选项,则可能需要使用反应变量和自动运行来加载数据。

如果要搜索单个文档,则最好使用
findOne()
它不返回Mongo光标,而是一个Mongo文档。我尝试过,它仍然返回未定义的内容检查您的输入是否有“空白”,无论是前导还是尾随。这是一个很常见的错误,类似的东西会通过格式不正确的超链接在参数中传递。
console.log()。如果不确定,则对参数应用
.trim()
,然后查看查询是否正常工作。如果您与预期结果不匹配,那么您的输入基本上不是您所认为的。@BlakesSeven我根据您的建议进行了检查,但结果仍然是一样的。我必须将整个代码放在Tracker.autorun()中。从这件事中得出我的答案