我在mongodb中的聚合有点问题;
收藏uczelna:
{
"_id" : ObjectId("5a5e404e6494620e7471c51a"),
"uczelnia" : "Politechnika Czestochowska",
"miasto" : "Czestochowa",
"ulica" : "Armii Krajowej 1",
"doktorzy" : [
{
"imie" : "Janina",
"nazwisko" : "Kowalska"
},
{
"imie" : "Dorota",
"nazwisko" : "Janiak"
},
{
"imie" : "Andrzej",
"nazwisko" : "Duda"
}
]}
{
"_id" : ObjectId("5a5e40636494620e7471c51b"),
"uczelnia" : "Politechnika Wroclawska",
"miasto" : "Wroclaw",
"ulica" : "Jodlowa 15",
"doktorzy" : [
{
"imie" : "Jolanta",
"nazwisko" : "Kanar"
},
{
"imie" : "Mateusz",
"nazwisko" : "Laskowski"
},
{
"imie" : "Piotr",
"nazwisko" : "Potrzebny"
}
]}
我的合计:
db.uczelnia.aggregate([{
$match: {$unwind: "$doktorzy.imie"{$not: /a$/}}},{
$group: {_id: "$doktorzy.imie", liczba_Pan:{$sum:1}}},{
$sort: { liczba_Pan: 1 }}]);
我想找到所有的医生(doktorzy)妇女(名字的最后一个字母a)在一所学校(uczelna)。imie(姓名)
告诉我我做错了什么,谢谢
您无法在1放松管道阶段完成此操作。第一个操作是展开数组,然后进行匹配和重新分组。我将您的聚合更改为:
db.collection.aggregate(
[
{
$unwind: "$doktorzy"
},
{
$match: {
"doktorzy.imie" : { $regex : "a$", $options : "i"}
}
},
{
$group: {_id: "$doktorzy.imie", liczba_Pan:{$sum:1}}
},
]);
匹配是一个忽略大小写的正则表达式,匹配的imie以“a”结尾
我试图使用MongoDb列出展开嵌套数组。 一个产品包含任务,每个任务可以有零个、一个或多个子任务。 以下是产品文档示例: 结果: 聚合管道在对任务进行排序方面起到了很大的作用 有时任务没有子任务,例如: 当他们没有孩子的时候,还有什么可以帮助他们完成任务吗? 当前聚合: 期望的结果:
我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。
我使用聚合来展开一个数组,并按数组的每个元素分组,以对一些对应的值求和。 我的收藏是: 我想按sourceMedium分组。nodeValue和sum“totalConverions”和“totalConversionValue”,而不使用重复元素。 例如,通过使用展开、分组和和: 对于“nodeValue”:(direct)/(none)“TotalConversions之和等于3,对于“goo
我正在使用MongoDB聚合框架展开一个数组,该数组有重复项,我需要在进一步分组时忽略这些重复项。 我如何才能做到这一点?
第一个名为的文档包含以下文档(不包括): 第二个集合名为,具有以下文档: 上的 预期的结果是: 如何使用聚合查询来实现这一点?
主要内容:aggregate() 方法,管道MongoDB 中的聚合操作用来处理数据并返回计算结果,聚合操作可以将多个文档中的值组合在一起,并可对数据执行各种操作,以返回单个结果,有点类似于 SQL 语句中的 count(*)、group by 等。 aggregate() 方法 您可以使用 MongoDB 中的 aggregate() 方法来执行聚合操作,其语法格式如下: db.collection_name.aggregate(aggr