我有一个集合('stops'),其中包含从CSV导入的14000条记录。每条记录中都包含一些地理空间数据,我将其转换为数组,因此每个数据基本上都是这样的:
{
_id: ...,
// other fields
"loc": [
153.019073,
-27.467834
]
}
当我运行db.stops.ensureIndex({ loc: '2d' })
时,它会出错:
预期的位置对象,位置数组格式不正确
我猜其中一个领域出了问题,但我无法弄清楚哪个领域。有什么想法吗?
答案 0 :(得分:1)
问题是有一条记录未正确导入(可能是文件末尾的空行)。
为了找到它(后来将其删除),我使用了$where
运算符:
db.stops.find({ $where: 'typeof this.loc[0] != "number"' })