【问题标题】:Mongoengine PointField gives location object expected, location array not in correct format errorMongoengine PointField 给出了预期的位置对象,位置数组格式不正确错误
【发布时间】:2013-12-04 13:08:35
【问题描述】:

我有一个模型如下:

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 文档说这样的字典应该没问题。我在这里想念什么?

【问题讨论】:

  • 确保您安装了最新版本的 mongoengine。适用于 0.8.4

标签: python mongodb pymongo mongoengine nosql


【解决方案1】:

我曾经遇到过类似的问题,在我的情况下,它发生是因为我使用 GeoPointField 构建第一个原型然后移动到 PointField 而没有删除或迁移我的数据库,对我来说,并且因为数据库中只有虚拟数据,所以问题刚开始新鲜我的数据库做一个完整的下降后就解决了。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    我先使用了 GeoPointField,然后转换为 PointField。我删除了集合中的数据,但没有删除集合本身,这造成了这个问题。

    删除集合解决了这个问题。

    【讨论】:

      【解决方案3】:

      在将一些数据从 GeoPointField 转换为 PointField(使用 MongoEngine)后,我遇到了类似的问题。

      这是由两个索引的存在引起的。一个用于GeoPointFIeld,另一个用于PointField。我删除了第一个索引,一切都很顺利。

      您可以使用db.collection.getIndexes(); 检查您的索引,然后使用db.collection.dropIndex("index_name") 删除索引

      【讨论】:

        猜你喜欢
        • 2018-07-09
        • 2015-12-04
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        相关资源
        最近更新 更多