MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Заявката Mongoose near(...) в индексирано поле на 2dsphere не връща валидни резултати

Изглежда, че това е moongoose bug .

Промяна на заявката на използване на GeoJSON обект вместо координатна двойката , като такъв:

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

води до следната заявка:

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

Търсенето вече е успешно.

Документите изрично показват заявка с помощта на координатна двойка:

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

Изглежда обаче, че това не работи и примерът трябва да бъде:

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. Как да се присъедините към две допълнителни колекции с условия

  2. Монго агрегиране Съвпадение на множество стойности

  3. Как да актуализирам _id на един MongoDB документ?

  4. Свързване с MongoDB през SSL с Node.js

  5. MongoDB $ и оператор на конвейер за агрегиране