美文网首页
MongoDB跨表查询

MongoDB跨表查询

作者: DramaKing | 来源:发表于2022-07-03 14:32 被阅读0次

// 清除不在birdnestPatientData表中的eagleDynamicTypeInstance({dynamicTypeId:'01'})病人数据

// 在mongodb可视化工具中, 设置超时时间300s(options->change shell timeout, 填300)

// 超时时间不够再加

var result = db.eagleDynamicTypeInstance.aggregate([
    {
        $match:{dynamicTypeId:'01'}
    },
    {
        $lookup: {
            from: 'birdnestPatientData',
            localField: 'key',
            foreignField: '_id',
            as: 'new_doc'
        }
    },
    {
        $project:{new_doc:1, key:1}
    }
]);
for(var item of result.toArray()) {
    var data = item.new_doc;
    if(data.length == 0) {
        db.eagleDynamicTypeInstance.remove({key:item.key});
    }
};

上面的语句中核心是MongoDB的聚合aggregate的使用,基本用法是db.collection.aggregate(pipeline, options).
pipeline和options的具体介绍参考https://www.mongodb.com/docs/manual/reference/method/db.collection.aggregate/
分析上面的语句,
match查询instance表中动态类型为01也就是病人的数据;lookup执行的相当于一个join操作,
from是要连接的另一个collection,
localField是当前collection的字段名,
foreignField是另一个collection中要和localField比较的字段名,
as是一个新的字段名,这个字段中存放匹配起来的document;
$project选择要保留的字段.
aggregate方法返回的是cursor类型, 所以处理之前先转换成数组再进行遍历.
在遍历的过程中查看定义的新字段中是否有匹配上的记录,没有的话就将这个instance删除,
这样遍历完之后剩下的就是在院的病人实例了.

相关文章

  • MongoDB跨表查询

    // 清除不在birdnestPatientData表中的eagleDynamicTypeInstance({dy...

  • 多表查询 子查询

    多表查询 连接查询:也可以叫跨表查询,需要关联多个表进行查询 笛卡尔集:select * from student...

  • Mysql--连接查询和子查询

    连接查询和子查询 一、连接查询 1.1 概念 连接查询:也可以叫跨表查询,需要关联多个表进行查询 1.2 根据年代...

  • orm查询操作

    单表查询操作 外键的跨表查询 正向查询(在有外键字段的表向没有的表查询) 反向查询(没有外键的字段向有外键字段的表...

  • Mongo连表聚合查询(1)

    在使用MongoDB存储数据的时候,我们查询的时候,有时候难免会需要进行连表查询。但是MongoDB本身是非关系性...

  • mongdb常用语句

    一: mongodb的常用语句 查询库、查询表show dbs -查询所有的数据库show connection...

  • MongoDB联表查询

    创建表user、order 查询 联表查询 拆分orders 分组求和并返回字段数据 查询用户的订单信息(订单id...

  • MySQL多表查询

    链接查询 什么是链接查询 也可以叫跨表查询,需要关联多个表进行查询 什么是笛卡尔集 假设集合A={a,b},集合B...

  • Django 的多表操作(基于下划线的跨表查询)

    基于双下划线的跨表查询 正向查询按字段,反向查询按表名小写 查询金瓶梅这本书的出版社的名字 -----------...

  • mongo 联表查询方法

    这里只对同库联表查询做介绍,跨库联表查询可能在之后也会介绍(因为公司架构变动,之后可能会联表查询)我用到的联表查询...

网友评论

      本文标题:MongoDB跨表查询

      本文链接:https://www.haomeiwen.com/subject/vwpdbrtx.html