sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose near(...)-forespørgsel på 2dsphere-indekseret felt returnerer ikke gyldige resultater

Det ser ud til, at dette er en månegåsefejl .

Ændring af forespørgslen til brug en GeoJSON objekt i stedet for et koordinatpar , som sådan:

qry.where('loc').near({
    center: {
        type: 'Point',
        coordinates: search.loc
    },
    maxDistance: search.distance * 1000
});

resulterer i følgende forespørgsel:

Mongoose: models.find({ loc: { '$near': { 
        '$maxDistance': 1,
        '$geometry': { type: 'Point', coordinates: [ 10, -20 ] } } } 
    }) { fields: undefined }  

Søgningen lykkes nu.

Dokumenterne viser eksplicit en forespørgsel ved hjælp af et koordinatpar:

query.where('loc').near({ center: [10, 10], maxDistance: 5 });

Det ser dog ud til, at dette ikke virker, og eksemplet skulle være:

query.where('loc').near({ center: { coordinates: [10, 10], type: 'Point' }, maxDistance: 5 });



  1. Express Node.JS - Modtager Redis callback, udfører løfter

  2. Spring Boot Integration Test med Embedded MongoDB

  3. Bloker adgang til Redis-nøgle (ServiceStack)

  4. Skal to moduler bruge den samme redis-forbindelse? (Jeg arbejder med Flask)