热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

MongoDB数据的聚合查询问题,新手求解?

有两个集合:A集合中存"用户信息";B集合中存"文章";B集合中每篇文章都有一个评论字段如下:12345678910comment:[{    uid:"59ffd1966e39780ae3fd99c

有两个集合:
A集合中存"用户信息";
B集合中存"文章";



B集合中每篇文章都有一个评论字段如下:

1
2
3
4
5
6
7
8
9
10
comment:[{

    uid:"59ffd1966e39780ae3fd99c3",

    message:'评论内容'

},{

    uid:"59ffd269fbcba4346517c098",

    message:'评论内容'

},{

    uid:"59ffd278fbcba4346517c099",

    message:'评论内容'

}]

如何在查询文章评论时,通过uid来关联A集合中的用户信息,希望返回结果如下:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
comment:[{

    username:"用户姓名",

   

    ......

   

    message:'评论内容'

},{

    username:"用户姓名",

   

    ......

   

    message:'评论内容'

},{

    username:"用户姓名",

   

    ......

   

    message:'评论内容'

}]

不希望在B集合中插入数据时,将A集合的数据查出再插入,这样存在数据冗余。。。。;
B集合中只放用户ID,不放其他任何用户信息。

翻阅MONGODB MANUAL没有找到。。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
db.b.aggregate([

    {$unwind: "$comment"},

    {

      $lookup:

        {

          from: "A",

          localField: "comment.uid",

          foreignField: "uid",

          as: "guest"

        }

    },

    {$group : {_id:"$title",comments:{$push:"$comment"}}

]);

返回结果其实只有 title和comments,其他相关字段都没了。。。。

求解!


   



推荐阅读
author-avatar
书友56183408
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有