我正在尝试在Meteor Collection中找到()。fetch(),但是当我在回调中调用此代码时(或直接在控制台中,它返回[])。
MyClass = class MyClass {
constructor() {
this.worker = null;
this._init();
console.log(Site.MyCollection.find().fetch()); //Logs the array of documents
}
_init() {
this.worker = new Worker('my-web-worker.js');
this.worker.addEventListener('message', this._onMessage, false);
this.worker.postMessage({ cmd: 'start', data: Site.MyCollection.find().fetch() }); //Works fine, the Web Worker receives the array of documents as expected
}
_onMessage(e) {
console.log(Site.MyCollection.find().fetch()); //Logs []
}
}
我无法从集合中删除任何文档,因此我不确定这是否是一个安全功能,或者是否在创建后以某种方式删除了集合。
要创建(虚拟)集合,我这样做(在客户端和服务器上)
Site.MyCollection = new Mongo.Collection("my-collection");
Site.MyCollection.remove();
let docs = [
{name:"One", data : ["a", "b", "c"}},
{name:"Two", data : ["e", "f", "g"}},
{name:"Three", data : ["h", "i", "j"}},
{name:"Four", data : ["k", "l", "m"}}
];
_.each(docs, function(doc){
Site.MyCollection.insert(doc);
});
答案 0 :(得分:0)
Aaah证明我是个白痴,我已经删除了自动发布包。所以
$meteor add autopublish
然后重新启动应用程序修复它。