Mon schéma DB Mongoose ressemble à ceci.Comment obtenir les enregistrements qui contient l'emplacement donné dans son rayon? Mongodb
var blogSchema = mongoose.Schema({
blogText: { type: String},
location: {type: [Number]},
radius : {type: Number},
});
blogSchema.index({location: 2dsphere});
... .. .. ...
données de l'échantillon ressemble ci-dessous
{
"_id" : 58ef3f1919f99e3bb37ce21b,
"location" : [
77.706106,
12.9447252
],
"radius" : "4000",
"blogText" : "News 1 ....."},
{
"_id" : 58ef3f19b37ce21b19f99e3b,
"location" : [
77.709979,
12.9703882
],
"radius" : "1000",
"blogText" : "Health 1 ....."},
{
"_id" : 58ef3f1919f99e3bb37ce21b,
"location" :[
77.7060119,
12.9488936
],
"radius" : "3500",
"blogText" : "Lifestyle 1 ....."},
{
"_id" : 58ef3f1919f99e3bb37ce21b',
"location" : [
77.709979,
12.9703882
],
"radius" : "100",
"blogText" : "Sports....."},
{
"_id" : 58ef3f1919f99e3bb37ce21b',
"location" : [
77.706106,
12.9447252
],
"radius" : "800",
"blogText" : "Tech ....."}
Je dois chercher uniquement les blogs qui contient l'emplacement de l'utilisateur sous l'emplacement du blog et le rayon.
Ma requête ressemble à. Lequel récupère les données en fonction de l'emplacement et du rayon de la requête.
db.blogs.find({location: {$geoNear: {$geometry: {type: "Point",coordinates: [77.706106,12.9447252]}$maxDistance: 500,$minDistance: 0}}}} })
Merci à l'avance
Vous avez raison, j'ai incorrectement changé le nom d'un champ. Il est fixé ci-dessus. –
maintenant ne peut pas $ soustraire un nombredouble d'une chaîne. – Smile
Je n'avais pas réalisé que vous conserviez le rayon en tant que chaîne. Il peut y avoir un moyen de projeter cela aussi, mais la meilleure pratique serait de stocker le rayon comme int ou float. –