在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言 在做自己的项目时,因为刚开始接触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数据库是非关系型、文档型数据库,将有关联的数据存储在一份文档中就能够减少进行表与表之间的关联查询 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对极客世界的支持。 |
请发表评论