MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapytanie Mongoose near(...) na indeksowanym polu 2dsphere nie zwraca poprawnych wyników

Wygląda na to, że to bug księżycowy .

Zmiana zapytania na używanie GeoJSON obiekt zamiast pary współrzędnych , jako takie:

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

skutkuje następującym zapytaniem:

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

Wyszukiwanie teraz powiodło się.

Dokumenty wyraźnie pokazują zapytanie przy użyciu pary współrzędnych:

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

Wygląda jednak na to, że to nie działa, a przykład powinien wyglądać tak:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Użyj Mongosniff, aby wyjaśnić, co słyszy i mówi Twoja baza danych

  2. Konwertuj ciąg na MongoDB BsonDocument

  3. Niestandardowe parametry połączenia użytkownika dla instancji MongoDB z uwierzytelnianiem

  4. Zmień nazwę ObjectId _id na id w deserializacji Jacksona za pomocą Jongo i MongoDB

  5. Wydajność zapytań MongoDB dla ponad 5 milionów rekordów