cosmosdb геопространственный поиск возврат бланк

Я использую cosmosDB для поиска в $geowithin, и когда я запускаю запрос в проводнике данных cosmosdb, он работает нормально и возвращает правильный набор. Когда я запускаю его в узле JS, используя MongoClient, я получаю пустой набор.

Это запрос, который я запустил в проводнике данных cosmosdb:

   {CurrentLoc: {
            $geoWithin: {
                $centerSphere: [[-122.0312186,37.33233141], 0.0025232135647961246]
            }
        }}

Это вернул правильный список документов

Это в моем приложении узла:

var toFind = {
        CurrentLoc: {
            $geoWithin: {
                $centerSphere: [currentLoc, maxDistance]
            }
        }
    }


    var query = db.collection('User').find(toFind)
    query.toArray(function (err, doc, queryResult) {
      logger.debug ('result: ' + JSON.stringify(doc);
})

Это возвращает пустой набор и не возвращает данные. Почему он возвращает разные вещи, а также почему он пуст?

1 ответ

Возможно, вам придется сломать currentLoc переменная в массив из двух значений, поэтому запрос структурируется так же, как при выполнении через CosmosDB Data Explorer:

[-122.0312186,37.33233141] в$centerSphere: [[-122.0312186,37.33233141], 0.0025232135647961246]

Надеюсь, поможет!

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