mongodb字段类型转化

mac2022-06-30  115

最近在使用mongoDB, 发现mongo对字段类型的定义并不是很严格,完全依赖传入数据的类型,在加上PHP是弱类型的语言,所以难免会出现一些错误。如果预想的类型是Int型,但数据存储的是String,那数据在根据Int型检索的时候,就完全失效了。如果发现某个字段在存储的时候出现了分歧怎么办?当然首先要修正程序在数据传入时候的错误,对于Int型一定要保证其类型的正确性。

example:

1 2 3 $user_arr = array (    'uid' => intval ( $_SESSION [ "user" ][ "id" ]),  //对于Int类型的数据,一定要保证其类型的正确性! );

 

 

那如何修正当前已存在数据类型的不同呢?!

查询所有字段类型是String的数据,然后将String转为Int:

1 2 3 4 5 6 7 db.you_collection_name.find( 'uid' : { $type : 2 }).forEach(    function (x)    {      x.uid = parseInt(x.uid) ;        //将String转为Int      db.you_collection_name.save(x);    } )

 

 

 

 

对于mongoDB字段类型的定义可参考:http://docs.mongodb.org/manual/reference/operator/type/#_S_type

 

转自 http://www.wangwei.info/2013/07/mongodb-type-conversion/

转载于:https://www.cnblogs.com/zhyg/p/4315787.html

最新回复(0)