2 u010805617 u010805617 于 2016.09.14 17:19 提问

mongodb为集合增加字段

mongodb现有集合test, 表的数据量大概为500w
集合中的文档为以下格式:
{ "_id" : "15998854009", "coordinate" : { "longitude" : 120.0123, "latitude" : 30.0254 }, "uploadtime" : "20160525090100", "bookmark" : 1 }
现需要改造集合的结构,增加一个性别属性:sex, sex的值不固定
改造后的文档格式要求为:
{ "_id" : "42000308329", "coordinate" : { "longitude" : 120.073094, "latitude" : 30.28031 }, "uploadtime" : "20160530150101", "bookmark" : 1, "sex" : 1 }

目前的方案是将原有数据导出,并对原有数据进行改造,改造成要求的格式,并通过代码逐条更新mongodb中的数据。

请问是否有更好的方案?mongodb是否提供批量更新的工具操作

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.09.14 19:17

直接用$set方式修改 根据条件一个个循环处理
mongodb本身就可以随意增加字段

u010805617
u010805617 你好,是通过命令行的方式逐个查询,并修改其中的字段吗?由于每条记录的差异,命令如何读取改造后的字段值,由于本人初次接触mongodb的项目,是否可以帮忙提供一个样例,万分感谢!
接近 2 年之前 回复
u010805617
u010805617 你好,是通过命令行的方式逐个查询,并修改其中的字段吗?由于每条记录的差异,命令如何读取改造后的字段值,由于本人初次接触mongodb的项目,是否可以帮忙提供一个样例,万分感谢!
接近 2 年之前 回复
daiyan_csdn
daiyan_csdn   2016.10.21 10:02

查询出变量,循环更新

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Mongodb的集合插入一个字段
在mongodb的现有集合中增加一个字段: db.rules.update({"_id" : ObjectId("587e5e0e09a4670334208e88")},{"$set" : {"u" : "1"}}); 你需要先use db_name,然后找到那条数据的objectid,然后执行代码。 效果: 原 现
MongoDB 文档字段增删改
MongoDB 基于CRUD(create,read,update,delete)方式实现了对集合上的文档进行增删改查。对于集合上字段的增删改,可以使用set或者set或者unset修改器来实现。也可以使用文档替换的方式来实现。本文主要描述集合上字段的增删改,以及基于选项upsert的更新。
MongoDB系列8:MongoDB集合的增量更新
邓开表同学实战MongoDB系列文章,非常不错,赞!大力推荐!本文是第8篇,主要讲述MongoDB集合的增量更新的实战经验,非常值得一看。前面系列文章:MongoDB安全实战之Kerberos认证MongoDB Compass--MongoDB DBA必备的管理工具MongoDB安全实战之审计MongoDB安全实战之SSL协议加密MongoDB安全实战之网络安全加固MongoDB索引的介绍Mong
mongodb如何新增字段
db.collection.update({}, {$set: {otherkey: ‘otherval’}}, {multi: 1})
MongoDB Capped集合 使用注意事项
Capped集合简介 1,Capped集合是一个固定大小,高性能的,文档按照插入顺序的一个集合。 新的对象会把覆盖旧的对象,像环形缓存一样。 2,find时默认就是插入的顺序,Capped集合会自动维护。 3,Capped 集合用来解决top 多少的问题,最新的top条评论,最活跃的top用户… Capped集合创建语法db.createCollection("集合名称", { capped :
mongodb导出集合
mongoexport -d jtomtoperp -c orderList -o order.txt   导出集合到当前文件夹命令。
mongodb 实现添加新字段(使用更新操作)
mongo中没有直接对表中的字段进行添加,所以我们需要通过更新来实现添加新字段的操作。 if course_name in mongodb_courses: collection = db[course_name] for c in collection.find(): collection.update({'_id':c['_id']},{'$set' : {'c
mongoDB 定长集合(capped collection)
大多数情况下,mongoDB中都是普通的集合,这些集合也称为动态集合,可以自动增长以容纳更多的数据。但这并不适合所有的场景。比如需要保存应用程序的某一个时间段日志,对于历史日志需要定期老化。这种情形下,定长集合就派上了用场。本文描述了定长集合的特性以及给出相关演示。
mongodb固定集合、TTL集合
mongodb固定集合、TTL集合在数据量较少的情况下,或者只需要保存部分的数据,使用固定集合不失为一个比较好的选择。 插入、查询的速度非常快。 创建固定集合 有点类似数据结构中的循坏队列,先进先出方式。满队列删除原来的元素。 固定集合与普通集合有所不同,需要显示的创建,指定size,max参数。当其中某个条件满足,将会删除最先进来的元素。 db.createCollection(“test_lo
Mongodb 重命名集合、列
重命名列db.fight.skill.update({},{"$rename":{"combatSkillId":"skillId"}},false,true)重命名集合名db.getCollection('combat.skill').renameCollection('fight.skill');