当前位置: 首页 > 知识库问答 >
问题:

在MongoDB中聚合,使用unwind

林曦之
2023-03-14

我需要汇总以下记录中的所有标记:

https://gist.github.com/sbassi/5642925

(这个片段中有2个样本记录)并按大小对它们进行排序(首先是出现频率更高的标记)。但是我不想考虑具有特定“user_id”的数据(比方说,2,3,6和12)。

以下是我的尝试(只是聚合,没有过滤和排序):

db。用户库。聚合({$unwind:“$annotations.data.tags”},{$group:{{U id:“$annotations.data.tags”,totalTag:{$sum:1}})

我得到了:

{"结果": [ ], "ok": 1}

共有1个答案

祁俊拔
2023-03-14

现在,无法展开嵌套在另一个数组中的数组。参见服务器-6436

考虑不同地构造数据,使用具有该文档的所有标签的数组字段,或者可能展开注释,然后展开注释。数据堆叠式展开中的标签如下所示:

db.user_library.aggregate([
    { $project: { 'annotations.data.tags': 1 } },
    { $unwind: '$annotations' },
    { $unwind: '$annotations.data.tags' },
    { $group: { _id: '$annotations.data.tags', totalTag: { $sum: 1 } } }
])
 类似资料:
  • 我有一套文件。每个文档有两个字段—“代码”和“状态”。我的mongodb集合包含以下文档: 我想按每个代码的状态查找计数。我想要的输出如下所示: 如何使用spring data mongodb实现这一点?我对mongodb很陌生。 更新我已成功编写mongodb查询。这是: 有人能帮助您在spring data mongodb中编写此查询吗?

  • 我需要筛选此查询,以便不显示值为的文档。当前,我的代码显示以下结果: 我需要一些过滤器,使消失,以便它显示我作为第一个值:。 我以前执行过以下操作:

  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。

  • 我想执行一个进行基本分页的聚合查询: 查找属于某个 以下是查询的详细信息: 这将查找所有匹配的文档: 这对文档进行了排序: 这会对文档进行计数,并传递未修改的文档,但我肯定这样做是错误的,因为事情从这里开始变得很奇怪: 这似乎跳过了一些文档: 这本应限制文件,但却没有: 这会返回计数,但不会返回数组中的文档,而是返回每个字段的数组: 结果是: 我哪里弄错了?