【发布时间】:2017-03-15 21:35:36
【问题描述】:
目前我在一个 numpy 数组中有一个 1e10 坐标的数组,格式如下:
[[-20.225869 1.1488514 47.007915]
[-19.585725 1.1527847 47.106827]
[-19.007616 1.0450604 41.686756]
[-19.277712 1.0455568 41.622501]
[-19.650136 1.0519722 41.848976]
......
]
每一行是一个点的坐标 (x, y, z)。 我希望将它们插入到 mongodb 数据库(GeoJSON)中。 我目前的做法是这样的:
for point in points:
db.map.insert_one(
{
"loc":
{
"x": np.float64(point[0]),
"y": np.float64(point[1]),
}
"z": np.float64(point[2])
}
)
而且这个过程确实需要很多时间。 我想知道是否有一些有效的方法可以做到这一点?我应该转向 C++ 以获得更好的性能吗?
非常感谢。
【问题讨论】:
-
看看这个选项khalidalnajjar.com/…
-
创建批次,例如一次 100 个点。 Mongo 可以进行批量插入。你会节省很多时间。 docs.mongodb.com/manual/reference/method/Bulk.insert 和 api.mongodb.com/python/current/examples/bulk.html
-
批量插入批次,尝试不同的批次大小
标签: python mongodb numpy gis geojson