MongoError: Невозможно извлечь гео-ключи - PullRequest
1 голос
/ 08 апреля 2020

У меня ошибка mon goose при обновлении данных. Ошибка:

MongoError: Невозможно извлечь гео-ключи

Я пытался найти причину и решение, выполнив поиск в Google, но все же я не сделал Не могу найти правильного решения.

Посты Модель

const geoLocationSchema = new mongoose.Schema({
    type: { type: String, default: 'Point'},
    coordinates: {
        type: [Number],
        index: { type: '2dsphere', sparse: false },
    }
});

const postsSchema = new mongoose.Schema({
    post_title: String,
    geoLocation: geoLocationSchema,
}, {
    timestamps: true
});

Пост-контроллер

const Posts = require("../models/Posts");

var findPattern = {_id: "5e8c661f274e8e57d8e03887"}; 
var updatePattern = {   geoLocation: {
    type: "Point",
    coordinates: [-8.4556973, 114.5110151] }
};

Posts.updateOne(findPattern, updatePattern) .then(updateRes => {
    console.log("post updated"); 
}).catch(err => {
    console.log("error", err.toString()); 
});

Вывод is:

MongoError: Невозможно извлечь географические ключи: {_id: ObjectId ('5e8c661f274e8e57d8e03887'), геолокация: {тип: "Точка", координаты: [-8.455697300000001, 114.5110151] , _id: ObjectId ('5e8d7f7c35b9d36d45b483a2')}} не может проецировать геометрию в сферический CRS: [-8.455697300000001, 114.5110151]

1 Ответ

2 голосов
/ 08 апреля 2020

поле с именем координаты, которое определяет координаты объекта.

Если указываются координаты широты и долготы, сначала укажите долготу, а затем широту:

Допустимые значения долготы находятся в диапазоне от -180 до 180, оба включительно. Допустимые значения широты - от -90 до 90, оба включительно.

Это означает, что для индекса 0 требуется долгота, а для индекса 1.

Попробуйте coordinates: [ 114.5110151,-8.4556973] }

...