我在地理位置数组中设置坐标:
Crowds.insert({
location: {"type": "MultiPoint","coordinates":
[[1, 1]]
}
});
Crowds._ensureIndex({ location: "2dsphere" });
然后我尝试增加价值。为此,我做了一个§push在“coordinates”数组中添加新值:
Crowds.update(
{ _id: crowd[0]._id },
{ $push: { location: { "coordinates": [ 2, 2 ]
}}}
);
我收到了错误的错误:
Exception in Mongo write: TypeError: object is not a function
似乎我没有以正确的方式更新坐标数组...我尝试了各种组合,但无法找到如何在嵌套数组中添加值...
请帮助;)谢谢
答案 0 :(得分:0)
那里有错字吗?
crowd[0]._id
"人群"在那里是奇异的,但你正在调用[0],好像它是一个数组。
应该是:
crowds[0]._id
答案 1 :(得分:0)
我想我发现了问题,实际上我没有问好这个问题......对不起
以下代码返回错误:
Crowds.update(
{ _id: '123' },
{ $inc: { people: 1 } },
{ $push: { "location.coordinates": [ Meteor.user().profile.location.coords.longitude, Meteor.user().profile.location.coords.latitude ],
{ $set: { modified: new Date().valueOf() } },
function(error){
return "Update error: " + error;
}
);
但它适用于:
Crowds.update(
{ _id: '123' },
{ $inc: { people: 1 } },
{ $set: { modified: new Date().valueOf() } },
function(error){
return "Update error: " + error;
}
);
Crowds.update(
{ _id: crowd[0]._id },
{ $push: { "location.coordinates": [ Meteor.user().profile.location.coords.longitude, Meteor.user().profile.location.coords.latitude ]
}},
function(error){
return "Update error: " + error;
}
);
似乎$ push需要单独使用,告诉我诊断是否错误;)