将带有id的mySQL表转换为带有_id' s的MongoDB表
我正在将MySQL表转移到MongoDB。我的MySQL表中有一个主键
id
,我希望将这个id
转换为MongoDB中的_id
。
我用php的MongoCollection::insert( $mysql_array );
但它不起作用,因为如果我设置$mysql_array['_id']
它被mongo视为String而不是MongoId。我试过$mysql_array['_id'] = new MongoId( $id )
但它不允许我覆盖默认的_id
值。我看到我所有MySQL的整数列都被转换为字符串MongoCollection::insert()
。如果我可以设置MongoCollection::insert()
来正确传输一个整数,它可能会工作。
没有找到相关结果
已邀请:
4 个回复
队辅坟阮阶
嘘伪
是Mongo中的一种特殊类型,但
属性不一定是这种类型。你不能强迫字符串或数字变成
,你不应该。 我认为问题是因为你认为你的
有效,但当你查看数据库中的数据时,
属性看起来不像
(如果原始ID是1234)。这是应该的,它完全没问题。
的想法是它有一个预定义的结构,使得它(大多数)保证在Mongo集群中是唯一的,但这也意味着它必须具有这种结构,否则它不是
。 您还提到所有整数列都转换为字符串。 PHP和PHP库在类型方面是众所周知的,所以确保当它们来自MySQL结果集时,值不是已经是字符串的情况。最糟糕的情况是,在将值插入Mongo之前必须显式地转换值。
缮淳彼誊
扑北爱
,你的阵列应该工作。