Как добавить новую строку в jspdf при нажатии на строки? (для достижения формата адреса)

Поскольку поле players является массивом, попытка доступа к его члену с $players.age слишком запутанна, mongo не знает, к какому элементу массива вы хотите получить доступ. Затем придите $unwind к спасению, это сделает каждый элемент массива стать внедренным элементом поля players. Если вы делаете $unwind с документом «Манчестер Юнайтед», у вас будет что-то вроде этого

{ "_id" : ObjectId("5666fbbd755e59eab7a3e05e"), "team_id" : "eng1", "date_founded" : ISODate("1896-10-03T17:00:00Z"), "league" : "Premier League", "points" : 62, "name" : "Manchester United", "players" : { "p_id" : "Rooney", "goal" : 85, "caps" : 125, "age" : 28 } }
{ "_id" : ObjectId("5666fbbd755e59eab7a3e05e"), "team_id" : "eng1", "date_founded" : ISODate("1896-10-03T17:00:00Z"), "league" : "Premier League", "points" : 62, "name" : "Manchester United", "players" : { "p_id" : "Scholes", "goal" : 15, "caps" : 225, "age" : 28 } }
{ "_id" : ObjectId("5666fbbd755e59eab7a3e05e"), "team_id" : "eng1", "date_founded" : ISODate("1896-10-03T17:00:00Z"), "league" : "Premier League", "points" : 62, "name" : "Manchester United", "players" : { "p_id" : "Giggs", "goal" : 45, "caps" : 359, "age" : 38 } }`

Поле players вышеупомянутого документа имеет 3 элемента, поэтому у вас будет 3 документа с такое же свойство, как и исходный документ, но элемент в массиве переместился, чтобы получить встроенный документ players. Тогда доступ к возрасту игрока легко с $players.age, потому что его встроенный документ.

Окончательный запрос

cursor = db.teams.aggregate([
    { $unwind: "$players" },
    { $group : { _id: "$name", avgAge : {  $avg : "$players.age" } } }
]);
1
задан ETO 15 January 2019 в 21:57
поделиться