Я пытаюсь написать простое приложение для узлов, чтобы найти ближайших пользователей. Я использую Mon go 5.9.11 для агрегатной функции и $ geoNear, но, к сожалению, когда я пытаюсь запустить приложение и найти пользователей, я получаю пустой массив - даже сообщение об ошибке. Кто-нибудь может увидеть проблему здесь? Должен ли я по-разному использовать агрегацию или, возможно, определить схему по-другому? Пожалуйста, помогите Вот код:
router.get('/nearbyUsers', (req, res) => {
User.aggregate([{
$geoNear: {
near: {type: 'point', coordinates: [parseFloat(req.query.lng), parseFloat(req.query.lat)]},
distanceField: "dist.calculated",
maxDistance: 100000,
query: { type: 'public' },
includeLocs: "dist.location",
spherical: true
}
}
])
.then(users=> res.send(users))
.catch(err => res.send(err));
console.log(req.query.lng, req.query.lat);
});
Также код для схемы:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
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 must be filled']
},
rank: {
type: String
},
available: {
type: Boolean,
default: false
},
geometry: GeoSchema
});
const User= mongoose.model('user', UserSchema);
module.exports = User;