mongodb数据库基础知识之连表查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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数据库是⾮关系型、⽂档型数据库,将有关联的数据存储在⼀份⽂档中就能够减少进⾏表与表之间的关联查询
⾃⼰先在⽹上找资料学习后,然后在学习慕课⽹上的视频时,就有很⼤的感触,⽬前的话还是有⼀些迷惑,对于数据的插⼊我会找到更好的⽅法来实现
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。