sql >> Databáze >  >> NoSQL >> MongoDB

Dotaz Mongoose near(...) na indexované pole 2dsphere nevrací platné výsledky

Zdá se, že se jedná o chybu měsíčku .

Změna dotazu na použití GeoJSON objekt místo dvojice souřadnici , jako takový:

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

výsledkem je následující dotaz:

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

Hledání je nyní úspěšné.

Dokumenty explicitně zobrazují dotaz pomocí dvojice souřadnic:

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

Zdá se však, že to nefunguje, a příklad by měl být:

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



  1. Jak mohu implementovat oprávnění na úrovni pole pro MongoDB?

  2. MongoDB $mul

  3. Redis, Node.js a Socket.io:Ověřování napříč servery a porozumění node.js

  4. Kde je databáze meteorů MongoDB?