mongodb数据库之连表查询

栏目: 数据库 · 发布时间: 6年前

内容简介:在做自己的项目时,因为刚开始接触mongodb非关系型数据库以及关系型数据库的影响还是留在脑中,总会想着进行一个连表查询,然后看官网和资料学习了下,还有那个查询时使用正则来匹配,在这里做个记录正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯^_^)

在做自己的项目时,因为刚开始接触 mongodb 非关系型数据库以及关系型数据库的影响还是留在脑中,总会想着进行一个连表查询,然后看官网和资料学习了下,还有那个查询时使用正则来匹配,在这里做个记录

1.mongodb正则匹配

/* 使用$regex字段匹配 */
name: {$regex: 'aa', $options: 'i'};
或者:
name: {$regex: /aa/, $options: 'i'};
或者:
name: {$regex: /aa/i};
/* 直接使用表达式 */
name: {/aa/i}
/* 使用$in来匹配,这个字段必须是一个数组 */
name: {$in: [/aa/]}

2.连表查询

  • 使用$lookup来进行连表查询
/* aggregate聚合操作,$unwind将数组拆分成单个元素
 * $group 分组依据
 * $sum 统计
 * $project 将返回值进行筛选,是否返回筛选完后的某个字段
 * $match 匹配条件
 * */
usingRecord.aggregate([
    {
      $lookup: {
        from: 'resources', /* 要连接的表名 */
        localField: 'resource_id', /* 当前表对应的字段 */
        foreignField: '_id', /* 要连接的表的字段 */
        as: 'resourceInfo'  /* 查询结果中显示的字段名 */
      },
    },
    {
      $match: {
        'user_id': user_id
      }
    },
    {
      $unwind: '$resourceInfo'
    },
    {
      $sort: {
        _id: -1
      }
    }
  ])

3.小结

  • mongodb数据库是非关系型、文档型数据库,将有关联的数据存储在一份文档中就能够减少进行表与表之间的关联查询
  • 自己先在网上找资料学习后,然后在学习慕课网上的视频时,就有很大的感触,目前的话还是有一些迷惑,对于数据的插入我会找到更好的方法来实现

正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯^_^)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Seasoned Schemer

The Seasoned Schemer

Daniel P. Friedman、Matthias Felleisen / The MIT Press / 1995-12-21 / USD 38.00

drawings by Duane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both The Little Schemer (form......一起来看看 《The Seasoned Schemer》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换