您的位置:首页 > 编程语言 > Python开发

使用 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: