使用 python,批量修改 mongdb 的字段类型

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值