Mongoengine PointField дает ожидаемое местоположение объекта, массив местоположения не в правильном формате ошибка
У меня есть следующая модель:
class Station(Document):
location = PointField()
Попытка записать данные следующим образом:
station = Station()
station.location = {
"type": "Point",
"coordinates": [
81.4471435546875,
23.61432859499169
]
}
station.save()
Однако это дает ошибку Could not save document (location object expected, location array not in correct format)
3 ответа:
Однажды я столкнулся с подобной проблемой, в моем случае это происходит потому, что я использую GeoPointField для создания первого прототипа, а затем перемещаюсь в PointField, не удаляя и не перенося свою базу данных, для меня, и поскольку в БД были только фиктивные данные, проблема решается сразу после запуска новой моей БД, выполняющей полное удаление. Я надеюсь, что это может быть полезно.
У меня была аналогичная проблема после преобразования некоторых данных из
Это было вызвано наличием двух индексов. Один дляGeoPointField
вPointField
(используя MongoEngine).GeoPointFIeld
, а другой дляPointField
. Я сбросил первый индекс, и все прошло нормально.Вы можете проверить свои индексы с помощью
db.collection.getIndexes();
, а затем удалить индекс с помощьюdb.collection.dropIndex("index_name")