MongoDB и nodeJS: высокое время ожидания с использованием индекса 2dsphere

Я работаю над приложением nodeJS с mongoDB, и я пытаюсь получить всех пользователей рядом с текущим пользователем...

Моя настоящая проблема в том, что мое приложение работает тихо, когда мой запрос основан на индексе "2d" (я получил около 25000 ответов за 1 минуту), но когда я пытаюсь сделать то же самое с индексом "2dsphere", у меня высокое время ожидания (1 запрос занимает более 2 секунд выполнения)...

Вот моя просьба:

app.get('/findInsertLocGeoNear100true', function(req, res) {
    var obj = getRandomCoordonnee();//"obj" = random longitude and latitude.
      userModel.geoNear({
       type: "Point" ,
       coordinates: [ obj.lat,obj.lng ]
    },
    { maxDistance : 5,
      spherical : true,
      num : 100   
    },
    function(err, results, stats) {
        res.json(200, results);
       console.log(err);
    });
});

А вот и моя схема мангуста:

var userSchema = new mongoose.Schema({
  loc: {type: [Number]},
  name : { type : String, match: /^[a-zA-Z0-9-_]+$/ },
  dateLastActivity : { type : Date, default : Date.now },
  type: Number
});

NB: MongoDB работает на сервере Ubuntu, и мой индекс создается с помощью "db.users.ensureIndex({"loc":"2dsphere"})"

Если у вас есть какие-либо советы, лучшие практики или предложения по улучшению моих выступлений, я был бы рад их услышать. Спасибо! С наилучшими пожеланиями.

0 ответов

Другие вопросы по тегам