从多个数据库集合创建对象(SailsJS,MongoDB,WaterlineJS)

时间:2013-12-03 17:13:04

标签: mongodb sails.js

我对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);
                }
            });
}

上面代码的结果是抛出一个错误,告诉我“艺术家”未定义。变量没有在函数外部传递?

任何建议都很受欢迎。

1 个答案:

答案 0 :(得分:1)

Sails即将发布包含关联的更新。与此同时,这里是一个如何使用异步完成它的答案。 https://stackoverflow.com/a/20050821/1262998