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