Values = new Meteor.Collection("values");
if (Meteor.isServer) {
Meteor.startup(function () {
Meteor.setInterval(function() {
Values.insert({id: Math.random(), name: "value"});
console.log(Values.find({name: "value"}).id);
}, 1000);
});
}
我有那个代码,我正在尝试每秒向Values添加一个值,并找到我拥有的所有值并每秒打印它们。但是,它没有找到我添加的值并正在输出:
I2043-14:21:56.895(0)? undefined
答案 0 :(得分:1)
find
返回一个光标,这是一个包含搜索结果的对象(有点像结果数组)。它是这样做的,因为find
可以获得的不仅仅是一个结果,具体取决于您传递的选择器。
它有一个类似于JS的forEach
接受一个函数,并接收文档,索引和游标作为参数。
Values.find({name: "value"}).forEach(function(doc,index,cursor){
console.log(doc.id);
});
在视觉上,find
的结果看起来像是:
[
{id: SOME_RANDOM_NUMBER, name: "value"},
{id: SOME_RANDOM_NUMBER, name: "value"},
{id: SOME_RANDOM_NUMBER, name: "value"},
{id: SOME_RANDOM_NUMBER, name: "value"},
]