db.getCollection('mygoods').aggregate(
[
  {
    "$match": {
      "$and": [
        {
          "$or": [
            {
              "idContribType": "515a353c002c8298f4495bf7"
            }
          ]
        }
      ]
    }
  },
  {
    "$match": {
      "idapp": "13"
    }
  },
  {
    "$sort": {
      "date_created": -1
    }
  },
  {
    "$addFields": {
      "myId1": {
        "$toObjectId": "$userId"
      }
    }
  },
  {
    "$lookup": {
      "from": "users",
      "localField": "myId1",
      "foreignField": "_id",
      "as": "user"
    }
  },
  {
    "$replaceRoot": {
      "newRoot": {
        "$mergeObjects": [
          {
            "$arrayElemAt": [
              "$user",
              0
            ]
          },
          "$$ROOT"
        ]
      }
    }
  },
  {
    "$project": {
      "recGood": 1,
      "sectorGood": 1,
      "idSectorGood": 1,
      "idGood": 1,
      "mygood": 1,
      "idStatusSkill": 1,
      "idContribType": 1,
      "idCity": 1,
      "pub_to_share": 1,
      "numLevel": 1,
      "adType": 1,
      "photos": 1,
      "note": 1,
      "website": 1,
      "descr": 1,
      "date_created": 1,
      "date_updated": 1,
      "userId": 1,
      "username": 1,
      "name": 1,
      "surname": 1,
      "comune": 1,
      "mycities": 1,
      "profile.img": 1,
      "profile.mygroups": 1,
      "profile.qualifica": 1,
      reported: 1,
      date_report: 1,
      username_who_report: 1,
    }
  },
  {
    "$lookup": {
      "from": "goods",
      "localField": "idGood",
      "foreignField": "_id",
      "as": "recGood"
    }
  },
  {
    "$replaceRoot": {
      "newRoot": {
        "$mergeObjects": [
          {
            "$arrayElemAt": [
              "$recGood",
              0
            ]
          },
          "$$ROOT"
        ]
      }
    }
  },
  {
    "$project": {
      "recGood": 1,
      "sectorGood": 1,
      "idSectorGood": 1,
      "idGood": 1,
      "mygood": 1,
      "idStatusSkill": 1,
      "idContribType": 1,
      "idCity": 1,
      "pub_to_share": 1,
      "numLevel": 1,
      "adType": 1,
      "photos": 1,
      "note": 1,
      "website": 1,
      "descr": 1,
      "date_created": 1,
      "date_updated": 1,
      "userId": 1,
      "username": 1,
      "name": 1,
      "surname": 1,
      "comune": 1,
      "mycities": 1,
      "profile.img": 1,
      reported: 1,
      "profile.mygroups": 1,
      "profile.qualifica": 1,
    }
  },
  {
    "$lookup": {
      "from": "sectorgoods",
      "localField": "recGood.idSectorGood",
      "foreignField": "_id",
      "as": "sectorGood"
    }
  },
  {
    "$replaceRoot": {
      "newRoot": {
        "$mergeObjects": [
          {
            "$arrayElemAt": [
              "$sectorgood",
              0
            ]
          },
          "$$ROOT"
        ]
      }
    }
  },
  {
    "$project": {
      "recGood": 1,
      "sectorGood": 1,
      "idSectorGood": 1,
      "idGood": 1,
      "mygood": 1,
      "idStatusSkill": 1,
      "idContribType": 1,
      "idCity": 1,
      "pub_to_share": 1,
      "numLevel": 1,
      "adType": 1,
      "photos": 1,
      "note": 1,
      "website": 1,
      "descr": 1,
      "date_created": 1,
      "date_updated": 1,
      "userId": 1,
      "username": 1,
      "name": 1,
      "surname": 1,
      "comune": 1,
      "mycities": 1,
      "profile.img": 1,
      reported: 1,
      "profile.mygroups": 1,
      "profile.qualifica": 1,

    }
  },
  {
    "$lookup": {
      "from": "cities",
      "localField": "idCity",
      "foreignField": "_id",
      "as": "mycities"
    }
  },
  {
    "$replaceRoot": {
      "newRoot": {
        "$mergeObjects": [
          {
            "$arrayElemAt": [
              "$mycities",
              0
            ]
          },
          "$$ROOT"
        ]
      }
    }
  },
  {
    "$project": {
      "recGood": 1,
      "sectorGood": 1,
      "idSectorGood": 1,
      "idGood": 1,
      "mygood": 1,
      "idStatusSkill": 1,
      "idContribType": 1,
      "idCity": 1,
      "pub_to_share": 1,
      "numLevel": 1,
      "adType": 1,
      "photos": 1,
      "note": 1,
      "website": 1,
      "descr": 1,
      "date_created": 1,
      "date_updated": 1,
      "userId": 1,
      "username": 1,
      "name": 1,
      "surname": 1,
      "comune": 1,
      "mycities": 1,
      "profile.img": 1,
      "profile.mygroups": 1,
      "profile.qualifica": 1,
      reported: 1,
    }
  },
  {
    "$match": {
      "$or": [
        {
          "$and": [
          {
              "profile.mygroups": {
                "$elemMatch": {
                  "groupname": {
                    "$in": [
                      "000017",
                      "VillaggiamoItalia",
                      "Terraw",
                      "RisoBenevento",
                      "111"
                    ]
                  }
                }
              }
            },
             {
              "pub_to_share": 1,
             }
          ]
        },
        {
          "pub_to_share": 0,
        }
      ]
    }
  },
  {
    "$match": {
      "$and": [
        {
          "mycities.reg": "EMR"
        },
        {
          "mycities.prov": "RN"
        }
      ]
    }
  },
  {
    "$group": {
      "_id": null,
      "count": {
        "$sum": 1
      },
      "results": {
        "$push": "$$ROOT"
      }
    }
  },
  {
    "$project": {
      "count": 1,
      "rows": {
        "$slice": [
          "$results",
          0,
          20
        ]
      }
    }
  }
]
)
