资讯专栏INFORMATION COLUMN

mysql 向mongo迁移备忘

张迁 / 1950人阅读

摘要:由于之前涉及分表,把用户所关联的各种数据,我们暂设定为代表四种业务比如为,可能属于表,表,表,表。现在要统一改为实现在表中有一个字段,类型是数组,分别存储相当应的表明比如这样。

由于之前涉及mysql分表,把用户所关联的各种数据,我们暂设定为abcd,代表四种业务

比如userid 为1 ,可能属于 a1表,a2表,b3表,d4表。
现在要统一改为mongo
实现在user表中有一个abcd字段,类型是数组,分别存储相当应的表明

比如 abcd [0=>a1,1=>b2,2=>c3]这样。

思路也很简单,分表找到数据库属于abcd的所有表,联合查询,取到表名和pid(person id),然后插入更新到mongo abcd字段即可。

以下是简单实现:

test->d_user;
        while ($row = mysql_fetch_assoc($res)) {
            $collection->update(array("pid"=>(int)$row["pid"]),array("$addToSet"=>array("acdt"=>$row["tbname"])));
        }

ps:myslq Union要进行重复值扫描,所以效率比较低。如果合并没有刻意要删除重复行,那么就使用Union All两个要联合的SQL语句 字段个数必须一样,而且字段类型要(一致)因为这些表里就是存了一个pid和时间,mongo的addtoset去重我猜又比mysql快,所以用了union all;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21212.html

相关文章

  • mysql mongo迁移备忘

    摘要:由于之前涉及分表,把用户所关联的各种数据,我们暂设定为代表四种业务比如为,可能属于表,表,表,表。现在要统一改为实现在表中有一个字段,类型是数组,分别存储相当应的表明比如这样。 由于之前涉及mysql分表,把用户所关联的各种数据,我们暂设定为abcd,代表四种业务 比如userid 为1 ,可能属于 a1表,a2表,b3表,d4表。现在要统一改为mongo实现在user表中有一个abc...

    whlong 评论0 收藏0
  • mongoose 操作备忘

    摘要:如果不存在则创建新记录。如果值为,执行验证。如果选项为,在新建时插入文档定义的默认值。以模式进行更新。禁用模式,允许覆盖记录示例更新多个为的文档将设置为更新多条数据与相同更新一条数据设置无效查找查询条件控制返回的字段控制选项回调函数。 在使用node.js时,时常与之搭配的是mongoDB,一般我们不写原生mongo语法,一个经常使用的mongo库便是mongoose,由于个人记性比较...

    happyhuangjinjin 评论0 收藏0
  • nodebb搭建,维护,discuz!数据迁移mongo

    摘要:原文链接为什么选择了我也不知道官方中文论坛官方文档中文文档安装此处的方式是安装部署不用考虑环境配置问题,但是相应的也会有一些弊端比如文件的修改等变得麻烦下方为镜像的为了修改文件方便,加了一个文件夹方便和宿主机文件交换同步上传的 原文链接 为什么选择了NodeBB?我也不知道~~~ NodeBB官方Github NodeBB中文论坛 NodeBB官方文档 NodeBB中文文档 安装 此...

    Charlie_Jade 评论0 收藏0
  • MongoDB 创建集群的步骤备忘

    摘要:创建三个数据库目录启动三个实例开启命令行初始化查看添加一个从节点这里的是查出来的属性添加一个再查看状态可以看到变成了三个自动恢复执行下面的代码模拟插入操作插入成功插入失败正在 创建三个数据库目录 $ cd /data $ mkdir db27017 db27018 db27019 启动三个实例 $ mongod --replSet replset --dbpath /data/db27...

    asoren 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<