MongoDB 关联表查询,聚合查询,填充的一些方法总结

本文总结了MongoDB的关联查询、聚合查询和链表查询方法。在填充操作中,介绍了如何在文章详情中获取用户信息和标签数据。聚合查询用于获取用户帖子总数、点赞、评论和举报记录等统计信息。链表查询则解决了多表间如文章与评论、举报数据的联合查询问题,通过先获取文章ID再进行特定条件的评论和举报数查询。
摘要由CSDN通过智能技术生成
1.填充:

使用场景:
1.假如文章详情需要发帖用户信息的相关信息
2.同时需要知道当前文章属于哪个标签下
此时可以对文章的数据做用户信息和分类标签的填充,这时只需要操作service即可。
article.js // 文章表下的service中populate填充方法:

let dbData = await Article.find(params.qCondition).populate(
  		[{  // 这儿是打算填充用户信息(userInfo表)
  		    // user_info文章article表下的model映射中的字段,这个字段到时取的是userInfo中的身份标志_id的字段
			path: "user_info", 
			// 文章表中我需要用到的某些字段
			select: "user_name show_name user_id sex" 
		},{ // 打算取所属分类的信息
			path: "article_type", 
			select: ""   // 不传取这条信息的所有字段
		},]
)
2.聚合查询

使用场景:
1.如果一个用户需要自己发的帖子文章数
2.所有文章的点赞数,评论数,
3.收藏的文章数
4.自己发的文章被举报的记录等
service下的aggregate方法的$group操作:

let dbData = await Article.aggregate([
	{
		$match: {
			pub_id: params.qCondition.pub_id
		}
	},
	{
		$group: {
			_id: "$pu
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值