我想自动跟踪我页面上的用户。 他们的位置应该在mongoDB中被反应性地更新。 因此,我会添加一个新的属性" location"到用户文档。 mdg:geolocation包已经为浏览器提供的位置数据提供了反应源:
Geolocation.latLng();
但是,当位置发生变化时,我很难更新用户文档。 如何触发
Meteor.users.update(Meteor.userId(), { $set: ...});
数据库更新?我尝试了以下但没有成功:
Meteor.startup = function()
{
Tracker.autorun(function () {
var location = Geolocation.latLng();
console.log(location);
Meteor.users.update(Meteor.userId(), {
$set: {
location: {
type: 'Point' ,
coordinates: [location.lng, location.lat]
}
}
});
});
}
答案 0 :(得分:1)
来自http://docs.meteor.com/#/full/meteor_user:
默认情况下,服务器会发布用户名,电子邮件和个人资料 (可由用户写)。
所以我认为你必须简单地改变你的代码:
Meteor.users.update(Meteor.userId(), {
$set: {
profile.location: {
type: 'Point' ,
coordinates: [location.lng, location.lat]
}
}
});
答案 1 :(得分:1)
现在我看到了错误。 它不是:
make
这是
Meteor.startup = function(){};