mongodb-聚合-$unwind$not

mongodb-聚合-$unwind$not,mongodb,Mongodb,我在mongodb中的聚合有点问题 乌西尼亚收藏: { "_id" : ObjectId("5a5e404e6494620e7471c51a"), "uczelnia" : "Politechnika Czestochowska", "miasto" : "Czestochowa", "ulica" : "Armii Krajowej 1", "doktorzy" : [ { "imie" : "Janina", "nazwisko" : "K

我在mongodb中的聚合有点问题

乌西尼亚收藏:

{ 
"_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) 学校(乌塞尔尼亚)。 伊米(姓名)


告诉我我在这里做错了什么,谢谢你在1个展开管道阶段无法做到这一点。 第一个操作是展开阵列,然后进行匹配和重组。 我将您的聚合更改为:

db.collection.aggregate(
[
    {
        $unwind: "$doktorzy"
    },
    {
        $match: {
        "doktorzy.imie" : { $regex : "a$", $options : "i"}
        }
    },
    {
        $group: {_id: "$doktorzy.imie", liczba_Pan:{$sum:1}}
    },
]);
匹配是一个regex忽略大小写并匹配以“a”结尾的imie