我的模型如下:
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)
Mongoengine文档说这样的字典应该没问题。我在这里错过了什么?
答案 0 :(得分:4)
我遇到类似的问题一次,在我的情况下,它发生是因为我使用GeoPointField构建第一个原型然后移动到PointField而不删除或迁移我的数据库,对我来说,因为db中只有虚拟数据,问题刚刚开始新的我的数据库完成下降后解决。我希望它能有所帮助。
答案 1 :(得分:1)
将一些数据从GeoPointField
转换为PointField
后,我遇到了类似的问题(使用MongoEngine)。
这是由两个索引的存在引起的。一个用于GeoPointFIeld
,另一个用于PointField
。我放弃了第一个索引,一切都很顺利。
您可以使用db.collection.getIndexes();
检查索引,然后使用db.collection.dropIndex("index_name")
答案 2 :(得分:-3)
我先使用GeoPointField然后转换为PointField。我把数据丢弃在集合中但不是集合本身,这就产生了这个问题。
删除该集合解决了这个问题。