我对Sails和noSQL数据库都很陌生,而且我在从不同的集合中收集信息时遇到了麻烦。基本上我需要从一个集合中收集项目对象,然后使用存储在该集合中的外键来添加来自单独集合的数据,这样整个事物就可以作为一个对象发送。
目前我找到一个名为Artwork的集合中的所有项目,然后我使用for循环来遍历艺术作品。我需要使用存储在Artworks中的id来查询名为Contacts的集合,但是已经成功找到了我无法将其传递回函数的联系人,以将其添加到Artwork对象中。
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);
}
});
}
上面代码的结果是抛出一个错误,告诉我“艺术家”未定义。变量没有在函数外部传递?
任何建议都很受欢迎。
答案 0 :(得分:1)
Sails即将发布包含关联的更新。与此同时,这里是一个如何使用异步完成它的答案。 https://stackoverflow.com/a/20050821/1262998