Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Meteor:外部更新数据库时出错:更改的未知id_Mongodb_Meteor - Fatal编程技术网

Mongodb Meteor:外部更新数据库时出错:更改的未知id

Mongodb Meteor:外部更新数据库时出错:更改的未知id,mongodb,meteor,Mongodb,Meteor,我有一个Android应用程序,它将数据发送到我的Meteor应用程序,并更新数据库。如果我使用meteor mongo从命令行检查mongo,则会保存新记录,但在浏览器控制台中,我看到以下错误: Exception in queued task: Error: Unknown id for changed: wtoa4JGTjYsAiddEs at Object.LocalCollection._CachingChangeObserver.self.applyChange.changed (h

我有一个Android应用程序,它将数据发送到我的Meteor应用程序,并更新数据库。如果我使用meteor mongo从命令行检查mongo,则会保存新记录,但在浏览器控制台中,我看到以下错误:

Exception in queued task: Error: Unknown id for changed: wtoa4JGTjYsAiddEs
at Object.LocalCollection._CachingChangeObserver.self.applyChange.changed (http://localhost:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:3809:13)
at http://localhost:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:421:13
at _.extend.runTask (http://localhost:3000/packages/meteor.js?81e2f06cff198adaa81b3bc09fc4f3728b7370ec:692:11)
at _.extend.flush (http://localhost:3000/packages/meteor.js?81e2f06cff198adaa81b3bc09fc4f3728b7370ec:720:10)
at _.extend.drain (http://localhost:3000/packages/meteor.js?81e2f06cff198adaa81b3bc09fc4f3728b7370ec:728:12)
at LocalCollection.update (http://localhost:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:779:22)
at Object.Mongo.Collection.self._connection.registerStore.update (http://localhost:3000/packages/mongo.js?052f30e968644b2b39a96605ffee73a7684ff37b:273:30)
at Object._.extend.registerStore._.each.store.(anonymous function) [as update] (http://localhost:3000/packages/ddp.js?41b62dcceb3ce0de6ca79c6aed088cccde6a44d8:3913:48)
at http://localhost:3000/packages/ddp.js?41b62dcceb3ce0de6ca79c6aed088cccde6a44d8:4663:19
at Array.forEach (native)
我看不到模板中的更改。如果刷新页面,则会显示所有新数据

我不知道我错过了什么

附言:第一个问题被问到,没有说英语的人。对不起,有些事情解释得不清楚

编辑:发布就像在文档中一样

Meteor.publish("bots", function () {
    return Bots.find();
  });
对于在数据库中的插入,我在服务器代码中使用Meteor.call,使用HTTP GET的Iron路由

Router.route('/get', {where: 'server'})
  .get(function () {
    ...  ...

    Meteor.call("addBot", params);

    ... ...
  });
参数在查询中

编辑2:

在我的模板中,我只是订阅集合,并使用助手获取所有字段

Meteor.subscribe("bots"); 
... ...
Template.controlpanel.helpers({
  bots: function () {
    return Bots.find();   
  } 
});
html代码是:

<tbody>
  {{#each bots}}
  <tr>
    {{> bot}}
  </tr>
  {{/each}}
</tbody>

没有涉及其他路由,也没有事件。

出现此错误的原因很可能是您将记录推入数据库,但在刷新浏览器之前,minimongo不知道这些记录


如何准确地将外部数据添加到monogdb?

我通过HTTP get和Meteor.call获取数据以更新数据库。谢谢,请显示您的出版物和订阅代码片段。@serkandurouse与docs没有什么特别的区别。为什么要使用服务器端路由作为插入方法?您可以在模板上使用简单的事件处理程序。我想你可能有两个问题。1您的模板2您的路由,指示页面刷新工作的原因。你真的需要分享更多的代码。至少是相关的作品。与模板一样,您刚才显示的发布订阅、相关路由、帮助程序、事件处理程序等@Serkanduroui更新了我的答案。谢谢您的帮助。您如何将参数传递到您的/get路线?服务器端get/post请求不是在meteor应用程序中插入数据的方式。为此,您可以使用事件处理程序,可能是表单上的提交事件,在事件处理程序中,您可以调用addBot方法。