MongoDB:联合查询并更新数据

来源:互联网 发布:电脑windows怎么激活 编辑:程序博客网 时间:2024/06/05 19:30

–工作笔记,记录今天解决的一个问题。

我在system_logging库里放了一个woplus_tservice集合,存有用户手机号码。同时,我在base_data库里有另一个集合mobile_segment,存有号码归属地。

我需要使用mobile_segment中的记录更新woplus_tservice中的记录,增加province和city。

代码如下:

use system_logging;var cur = db.woplus_tservice.find({$or:[{'province':{$exists:false}},{'province':'--'}]});var handler = function(doc,idx,arr){    var mid = doc.userId.substring(0,7);    var pc = db.getSiblingDB('base_data').mobile_segment.findOne({'msegment':mid});    if(pc!=null){        //print(mid+',,,'+pc.province);        doc.province=pc.province;        doc.city=pc.city;        db.woplus_tservice.update({'_id':doc._id},doc);    }};cur.forEach(handler);

其实,MongoDB是允许我们在A库直接访问B库的,db.getSiblingDB(),很简单的事情,以前没太注意。谨记录之。

0 0
原创粉丝点击