meteor自动将地理位置保存到用户文档

时间:2015-12-10 13:12:57

标签: javascript mongodb meteor geolocation

我想自动跟踪我页面上的用户。 他们的位置应该在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]
                   }
            }
        });
    });
}

2 个答案:

答案 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(){};