Мне понадобилась помощь, чтобы понять, почему агрегатная функция не отвечает так, как я ожидаю.Это разработанная мной служба API RESTful, в которой я пытаюсь соединить коллекции друг с другом.Обратите внимание на следующее:
Коллекция: Сезон
{
"_id": {
"$oid": "5c0fc60bfb6fc04dd6ea4e9a"
},
"Season": "1",
"TotalEpisode": "15",
"Name": null,
"Description": "First season with no name for this drama",
"PlayID": "5c0fc4aafb6fc04dd6ea4d81"
}
Коллекция: Play
{
"_id": {
"$oid": "5c0fc4aafb6fc04dd6ea4d81"
},
"Name": "It was the first time",
"Description": "One of the best action heros in the entertainment industry until this day",
"ReleaseDate": "24/12/2010",
"EndingDate": "12/08/2012",
"Category": "Drama"
}
Мой реализованный код в JavaScript
function getTestLookUp(db, collectionName, response, secondCollectionName){
console.log('First collection name: ' + collectionName + '\n' + 'Second collection name: ' + secondCollectionName);
db.collection(collectionName).aggregate([
{
$lookup:
{
from: secondCollectionName,
localField: 'PlayID',
foreignField: '_id',
as: 'requestedDetails'
}
}
]).toArray((err, res) => {
if(err){
console.log(err);
} else {
console.log(res);
response.status(200).json({
'Items': res
});
}
});
}
Ответ
{
"Items": [
{
"_id": "5c0fc60bfb6fc04dd6ea4e9a",
"Season": "1",
"TotalEpisode": "15",
"Name": null,
"Description": "First season with no name for this drama",
"PlayID": "5c0fc4aafb6fc04dd6ea4d81",
"requestedDetails": []
}
]
}
Вещи, которые я проверял до сих пор: имена коллекцийточный, идентификатор также точный, так как я могу найти его с помощью функции поиска MLabs.Я не понимаю, почему это возвращает пустой «требуемый элемент», так как я надеялся, что он вернет элемент из коллекции Play.
В дополнение к этому, я также был бы признателен, если бы кто-то мог указать, как я могу объединить несколько коллекций вместо 2.
Я приветствую любые вопросы, касающиеся этой проблемы.