我在nodejs&上使用mongoose快递服务器。
架构:
var MatchSchema = new mongoose.Schema({
name: String,
// list of Strings which are their _id in User collection
players: [String],
geolocations: {playerId: {lat: Number, lon: Number}},
});
我的路由
router.post('/:id', function(req, res) {
Match.update(
{_id: req.params.id},
{
$set: {
`geolocation.${req.body.myPlayerId}`: {
lat: req.body.lat,
lon: req.body.lon
}
}
}
);
});
这将导致语法错误:geolocation.${req.body.myPlayerId}
(ES6中格式化的字符串)
我可以使用JS对象列表,如果这有助于我更轻松地解决这个问题。也许我可以重新考虑我的设计,只需在每个用户文档中存储地理位置信息,然后获取所有地理位置信息,并在发出请求时将其发送给每个玩家。