我正在为地理搜索创建一个应用程序。我已经使用MongoDB做到了,但是我正在努力使用Sequelize做到这一点。 我在MongoDB中创建了一个架构,如下所示。
const GeoSchema = new Schema({
type: {
type: String,
default: 'Point'
},
coordinates: {
type: [Number],
index: '2dsphere'
}
});
const UserSchema = new Schema({
name: {
type: String,
required: [true, 'Name field is required']
},
geometry: GeoSchema
});
以下是从数据库中查找位置的代码:
router.get('/users', async (req, res, next) => {
try {
const users = await User.aggregate([
{
$geoNear: {
near: {
type: 'Point',
coordinates: [parseFloat(req.query.lng), parseFloat(req.query.lat)]
},
distanceField: 'dist.calculated',
maxDistance: parseFloat(req.query.maxDistance),
spherical: true
}
}
]);
if (users.length <= 0) {
return res
.status(200)
.send({ message: 'No users found within your range' });
} else {
return res.status(200).send(users);
}
} catch (error) {
console.log(error);
}
});
请帮助使用Sequelize实现相同的功能。