我有这个数据集:
[
{
userId: 1,
nickname: 'a'
},
{
userId: 2,
nickname: 'b'
},
{
userId: 3,
nickname: 'c'
},
...
]
我想用聚合来实现这种形式:
{
newField: 123456,
users: [
{
userId: 1,
nickname: 'a'
},
{
userId: 2,
nickname: 'b'
},
{
userId: 3,
nickname: 'c'
},
...
],
}
其中文档流组合成单个文档内的单个数组字段,我想在其中添加一些额外的字段。初始数据集在聚合管道中的第n个阶段后检索。
鉴于所有这些:
下一阶段应该是什么?
我需要$group吗?
我的下一阶段应该是什么样子?
db.users.aggregate([
...,
{ $whatStage: <what do I do inside of it...> }
])
如果我理解正确,您可以尝试以下查询:
按< code>null分组确保所有值都被分组。和< code > $ push < code > $ $ ROOT 对象(即文档)。
db.collection.aggregate([
{
"$group": {
"_id": null,
"users": {
"$push": "$$ROOT"
}
}
}
])
这里的例子
此外,要添加新字段,您可以使用$First
进入组(示例)或使用$set
、$addFields
或$Project
的新阶段,如下例所示
我有一个聚合管道,几乎可以实现我想要的功能。我使用了匹配/解开/项目/排序来获得99%的方式。它正在返回多个文档: 注意:我添加了数组括号和逗号以使其更具可读性,但您也可以将其理解为: 我需要一个文档中值数组中所有7个文档的ID字段的内容: 一旦我有了结果,就可以用JS对其进行排序,但如果可能的话,我宁愿在管道中进行排序,这样我的JS就可以保持100%的通用性,并且只返回纯管道数据。
我想从引用的文档中获取字段值。Mongodb版本是3.4。 假设我有两个收藏foo和bar。Foo提到bar: 相应的条形码文档看起来像这样: 我尝试了以下聚合函数来归档此结果: 聚合功能: 但我的结果是这样的: 我试着用谷歌搜索它,我查看了mongodb文档,但没有找到解决方案。 是我错过了什么还是这不可能? 谢谢
ES如何在内部实现度量聚合? 假设索引中的文档具有以下结构: 对于以下对类别进行术语聚合并计算总和(度量)的查询,“度量”字段值 从文档中提取(即\u源)并求和或 查询:
我对mongoDB的聚合函数感到非常困惑。我只想在我的收藏中找到最新的文档。假设每个记录都有一个“创建”的字段 产生正确的结果,但我希望结果中包含整个文档?我将如何做到这一点? 这是文档的结构:
设想一个集合,该集合在聚合的$match操作符上返回具有此结构的文档数组 所以基本上每个返回的文档都共享一个片段(这就是我将如何对它们进行分组),但是每个文档都有一个子文档数组,每个子文档都有不同的_id。 因此,当我使用{slug:“a”}执行$match聚合时,它返回一个数组
我需要把一个文件分成几个小文件。例如,如果文档有7页,我需要生成7个PDF。 在iTextSharp中,我使用了以下代码,运行得非常好。然而,在iText 7中,不可能以同样的方式进行。 第一个问题 我发现有一个,它可以将我的pdf文件拆分成小的pdf文件。然而,即使是我的测试pdf也有7页,甚至返回数字7,被拆分的文档的数量只是一个。 在这个链接文档中,以某种方式展示了如何拆分文档。然而,我不知