Mongodb Meteor:外部更新数据库时出错:更改的未知id
我有一个Android应用程序,它将数据发送到我的Meteor应用程序,并更新数据库。如果我使用meteor mongo从命令行检查mongo,则会保存新记录,但在浏览器控制台中,我看到以下错误: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
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方法。