這是我的查詢,我是Mongo的新手,所以我有點摸不著頭腦,這個查詢。我的目標是獲得所提供的球員的隊友。我將顯示查詢,然后顯示球員的檔案。
db.Players.aggregate( {
$match: {_id: "/players/c/cruzne02.shtml"/span>}},
{$unwind: "$teams"}。
{$unwind: "$teams.years"},
{$lookup: {
from: "Players"/span>,
let: {team_name: "$teams.name", team_year: "$teams.years"},
pipeline: [{
$match: {
$expr: {
$and: [
{$eq: ["$teams.name"/span>, "$team_name"/span>]},
{$eq: ["$teams.year", "$team_year"]},
]
}
},
}],
as: "results"。
}},
{$unwind: {
path: "$results"/span>,
preserveNullAndEmptyArrays: true。
}},
{$group: {
_id: {
team: "$teams.name"/span>,
年。"$teams.years".
},
results: {
$push: "$results"。
}
}},
{$project: {
team: "$_id.team"。
年。"$_id.year",
results: 1,
_id: 0.
}}
]);
{
"_id"。"/players/c/cruzne02.shtml"/span>,
"url": "/players/c/cruzne02.shtml",
"name": "Nelson Cruz",
"image": "https://www.baseball-reference.com/req/202108020/images/headshots/f/fea2f131_mlbam.jpg",
"團隊": [{
"name": "MIL",
"年份": [2005]
}, {
"name": "TEX"。
"年份": [2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013]
}, {
"name": "BAL",
"年份": [2014]
}, {
"name": "SEA",
"年份": [2015, 2016, 2017, 2018]
}, {
"name": "MIN",
"年份": [2019, 2020, 2021]
}, {
"name": "TBR",
"年份": [2021]
}]
我能夠拿回小組,但結果陣列總是空的。球隊和年份是一致的,但是結果卻從來沒有彈出。 我目前的結果是空陣列,我需要改變什么呢?
編輯:這是我的結果
[ { results: [], team: 'MIN', 年份: 2020 },
{ results: [], team: 'TEX', 年份: 2006 },
{ results: [], team: 'MIL', 年份: 2005 },
{ results: [], team: 'TEX', 年份: 2008 },
{ results: [], team: 'TBR', 年份: 2021 },
{ results: [], team: 'SEA', 年份: 2018 },
{ results: [], team: 'TEX', 年份: 2007 },
{ results: [], team: 'MIN', 年份: 2019 },
{ results: [], team: 'SEA', 年份: 2017 },
{ results: [], team: 'TEX', 年份: 2013 },
{ results: [], team: 'TEX', 年份: 2011 },
{ results: [], team: 'TEX', 年份: 2012 },
{ results: [], team: 'SEA', 年份: 2016 },
{ results: [], team: 'TEX', 年份: 2010 },
{ results: [], team: 'SEA', 年份: 2015 },
{ results: [], team: 'BAL', 年份: 2014 },
{ results: [], team: 'MIN', 年份: 2021 },
{ results: [], team: 'TEX', 年份: 2009 } ]
uj5u.com熱心網友回復:
將$match放在聚合的最后。
db.collection.aggregate( [
{
$unwind: "$teams"。
},
{
$unwind: "$teams.years" }.
},
{
$group: {
_id: {
team: "$teams.name"/span>,
年。"$teams.years"。
},
results: {
$push: {
"name": "$name",
"id": "$_id", "id".
}
}
}
},
{
$match: {
"results.id": "/players/c/cruzne02.shtml"。
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/332489.html
標籤:
