Я очень новичок в базе данных Sails и noSQL, и мне сложно собирать информацию из разных коллекций. В основном мне нужно собрать объект предметов из одной коллекции, а затем использовать внешний ключ, хранящийся в этой коллекции, для добавления данных из отдельной коллекции, чтобы все это можно было отправить как один объект.Создайте объект из нескольких коллекций баз данных (SailsJS, MongoDB, WaterlineJS)
В настоящее время я нахожу все предметы в коллекции под названием «Художественные работы», затем я использую цикл for для итерации произведений. Мне нужно использовать идентификатор, хранящийся в Artworks, для запроса коллекции под названием «Контакты», но, успешно обнаружив контакт, я не могу передать его обратно из функции, чтобы добавить его в объект «Художественное произведение».
find: function (req, res, next) {
Artwork.find().done(function (err, artwork) {
// Error handling
if (err) {
return console.log(err);
} else {
for (x in artwork) {
var y = artwork[x]['artistID'];
// Get the artsists name
Contact.find(y).done(function(err, contact) {
// Error handling
if (err) {
return console.log(err);
// The Artist was found successfully!
} else {
var artist = contact[0]['fullName'];
}
});
artwork[x]['artistsName'] = artist;
}
res.send(artwork);
}
});
}
Результат вышеуказанного кода - это ошибка, которая говорит мне, что «художник» не определен. Переменная не передается вне функции?
Любые советы очень получены.
Большое спасибо @JohnGalt. Я с нетерпением жду обновления: [(github.com/balderdashy/sails/issues/124)](https://github.com/balderdashy/sails/issues/124). В то же время у меня будет вариант async. – user3024839