我有一个巨大的mongodb集合,有600万条记录。我有两个字段(纬度,经度),我想在集合中添加第三个字段,其类型为点(空间)。如何在命令行或PHP中执行此操作?
答案 0 :(得分:1)
您希望为集合中的所有文档添加一个新字段(具有相同的值),这可以通过update()
操作轻松完成。请考虑以下shell示例:
db.collection.update(
{},
{ $set: { type: "spatial" }},
{ multi: true }
);
这会将匹配空条件type
(即所有内容)的所有文档的{}
字段设置为“空间”,multi
选项允许更新修改多个文档而不是只是匹配的第一个文档(默认行为)。
如果您只想将type
字段设置为尚不存在,则可以调整标准,如下所示:
db.collection.update(
{ type: { $exists: false }},
{ $set: { type: "spatial" }},
{ multi: true }
);
由于您正在存储地理空间数据,因此您可能需要查看MongoDB的2dsphere indexes。这将允许您在文档中存储和索引格式正确的GeoJSON对象。有关此主题的更多介绍性信息,请参阅相关问题的this previous answer。