Координаты преобразуются в строку в MongoDB - PullRequest
0 голосов
/ 30 января 2020

Я анализирую float (ed) широту и долготу перед сохранением их в формате geo JSON в MongoDB. И, как я уже проверил, координаты правильно хранятся в виде цифры c. Но когда я выполняю фильтрацию (поиск), я возвращаю координаты в виде строк.

Вы можете видеть мою структуру данных:

{
    "_id" : ObjectId("5e327c4b8c0181790e15d495"),
    "username" : "test",
    "location[type]" : "Point",
    "location[coordinates][]" : [
        77.641145,
        12.89149
    ],
    "email" : "test@gmail.com",
    "phone" : "8998778987",
    "chat" : "0"
}

Это мой фильтр query:

collection.find({
        "location": {
         $near: {
           $geometry: {
              type: "Point" ,
              coordinates: [lng, lat]
           },
           $maxDistance: 2000,
           $minDistance: 0
         }
       }
    }, {}, function (e, docs) {      
        docs = JSON.stringify(docs);
        console.log("docs "+docs);
        res.send(docs);
        if(e){
            throw e;
        }
    });

Перед сохранением данных я проанализировал координаты, подобные этой, и проверил тип на «число».

data["location[coordinates][]"][0] = parseFloat(data["location[coordinates][]"][0]);

И даже в базе данных вы можете видеть, что координаты не сохраняются в виде строки. Есть предложения ??

...