为什么这段代码显示"0"?它不应该返回"1"?
Messages = new Meteor.Collection("messages");
if (Meteor.is_client) {
Meteor.startup(function () {
alert(Messages.find().count());
});
}
if (Meteor.is_server) {
Meteor.startup(function () {
Messages.insert({text: "server says hello"});
});
}
Run Code Online (Sandbox Code Playgroud)
如果我稍后执行"Messages.find().count()",则返回1.
Tracker.autorun(function() {
DATA.find().observeChanges({
added: function(id, doc) {
console.log(doc);
}
});
});
Run Code Online (Sandbox Code Playgroud)
此代码正在服务器上调用.每次流星服务器启动时,该added函数都会触发数据库中的每个项目.有没有办法added只在添加新项目时触发回调?
我正在编写一个软件,通过DDP连接到Meteor服务器来读取数据.
我面临的问题是如何区分添加到集合中的新文档和获取已有文档的通知.
当我第一次连接到服务器时,我收到一系列added消息来填充客户端集合.我不知道如何区分这些消息,以及稍后出现的消息,表明实时添加了新文档.当DDP客户端需要重新连接到服务器时,这会变得更糟,此时所有当前文档再次作为added消息发送.