使用 python,批量修改 mongdb 的字段类型
2014-04-04 15:50
525 查看
1 由于业务需要,需要 把 _id的批量转换为 ObjectId类型,原来是int类型的
2 首先你需要找出来的是那些 uid 字段还是属于 String 类型的文档, MongoDB 的文档给出了按字段类型查找文档的方
http://docs.mongodb.org/manual/reference/operator/query/type/#_S_type
Type Number
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined (deprecated) 6
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255
Max key 127
//下面是python的源码
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from bson.objectid import ObjectId
import pymongo
MONGO_HOST = '210.73.220.187'
#MONGO_HOST = '127.0.0.1'
MONGO_PORT = 27017
MONGO_DATABASE = 'papers'
conn = pymongo.Connection(MONGO_HOST, MONGO_PORT)
db = conn[MONGO_DATABASE]
rows = db.sohu.find({ '_id' : { '$type' : 16 }})
for row in rows:
print row['_id']
db.sohu.remove({ '_id' : row['_id']})
row['_id'] = ObjectId()
rows = db.sohu.save(row)
2 首先你需要找出来的是那些 uid 字段还是属于 String 类型的文档, MongoDB 的文档给出了按字段类型查找文档的方
http://docs.mongodb.org/manual/reference/operator/query/type/#_S_type
Type Number
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined (deprecated) 6
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255
Max key 127
//下面是python的源码
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from bson.objectid import ObjectId
import pymongo
MONGO_HOST = '210.73.220.187'
#MONGO_HOST = '127.0.0.1'
MONGO_PORT = 27017
MONGO_DATABASE = 'papers'
conn = pymongo.Connection(MONGO_HOST, MONGO_PORT)
db = conn[MONGO_DATABASE]
rows = db.sohu.find({ '_id' : { '$type' : 16 }})
for row in rows:
print row['_id']
db.sohu.remove({ '_id' : row['_id']})
row['_id'] = ObjectId()
rows = db.sohu.save(row)
相关文章推荐
- solrJ 1、批量更新数据时,会有部分数据没有更新上, 2.排序时使用整型、数字型字段,不要使用字符串类型
- 数据库技巧-批量修改ORACLE数据库的字段类型
- 批量修改数据库字段类型(ORACLE)
- 使用Python批量修改PPTX文件中文本框格式
- SQL Server中使用表类型参数批量添加和修改的存储过程
- sql 修改 某个字段值得一部分;sql使用多个如果批量更新,sql自增主键重新从1开始
- ArcGIS批量修改字段名称或类型
- 批量修改数据库表字段类型
- oracle中使用SQL语句修改字段类型
- CLOB类型字段修改语句,使用oracel中的replace函数
- 批量修改字段的类型(SQL Server)--varchar到nvarchar
- Python 使用__call__动态修改参数类型
- 批量修改字段的类型(SQL Server)--varchar到nvarchar
- python使用MySQLdb,往库表内添加中文字段要做的修改
- 懒人懒到家 批量修改DB中字段类型
- 使用 SQL Server 2008 数据类型-xml 字段类型参数进行数据的批量选取或删除数据
- 使用 SQL Server 2008 数据类型-xml 字段类型参数进行数据的批量选取或删除数据
- sqlserver中用游标,拼接sql,批量修改数据库字段类型
- 曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训
- python中集合类型创建、更新、删除、修改以及操作符使用实例代码