Nano Hash - криптовалюты, майнинг, программирование

Mongoose не возвращает полный документ

Я использую mongolab в качестве моего хоста db. Я создал схему локаций и пример документа 2dsphere индекса страхования:

{
    "_id": {
        "$oid": "54d6347ce4b04aad9bbdc8ac"
    },
    "name": "Vacation",
    "address": {
        "city": "Ashkelon",
        "street": "Afridat"
    },
    "location": {
        "type": "Point",
        "coordinates": [
            34.552955,
            31.671384
        ]
    }
}

При использовании Mongoose для запроса коллекции все работает отлично, но я не могу получить поле местоположения. При использовании оболочки mongo я получаю полный документ (с указанием местоположения).

// the query Im using:
 Mongoose: locations.find({ _id: ObjectId("54d63538e4b04aad9bbdc8b4") }) { fields: undefined } 

Этот запрос возвращает только следующие параметры: имя, адрес и _id.

Обновление:

Схема:

var locationSchema = mongoose.Schema({
    name: String,
    address: {city: String, street: String},
    location: {
        type: [Number],  // [<longitude>, <latitude>]
        index: '2dsphere'      // create the geospatial index
    }
});
07.02.2015

  • Можете ли вы опубликовать свое определение схемы? 07.02.2015
  • Я обновил свой вопрос 07.02.2015

Ответы:


1

Поле location в вашей схеме должно соответствовать структуре в вашем документе. Текущая схема определяет ее как устаревшую пару координат, но в вашем документе используется GeoJSON Point, поэтому вместо этого измените схему, чтобы она выглядела следующим образом:

var locationSchema = mongoose.Schema({
    name: String,
    address: {city: String, street: String},
    location: {
        type: { type: String },
        coordinates: [Number]
    }
});    
locationSchema.index({location: '2dsphere'});

Обратите внимание, что вам нужно определить индекс для location отдельно, потому что он содержит свои собственные поля в схеме.

07.02.2015
  • Спасибо, сэр. Вернитесь, чтобы узнать больше о устаревших координатах и ​​новом GeoJSON. 08.02.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..