javascript - 填充嵌套引用 mongoosejs 的更好方法

标签 javascript node.js mongodb mongoose mongoose-populate

我正在尝试填充嵌套在其他引用中的引用。我已经可以工作了,但看起来有点老套,想知道是否还有其他方法可以实现这一点:

return Q.ninvoke(BoardSchema, 'find', {'_id': id}).then(function(board) {
    return Q.ninvoke(BoardSchema, 'populate', board, {path: 'lanes'}).then(function(board){
        return Q.ninvoke(LaneSchema, 'populate', board[0].lanes, {path: 'cards'}).then(function(lanes){
            board.lanes = lanes;
            return board;
        });
    });
});

是否有某种方法可以填充所有引用,或者返回第二个填充作为董事会调用的一部分,而无需像我现在一样手动设置?

最佳答案

您应该能够填充多个来填充嵌套文档,如下所示:

Item.find({}).populate('foo foo.child').exec(function(err, items) {
    // Do something here
});

这要求在架构定义中设置引用。

如果这不起作用(老实说,大多数情况下由于某种原因),您可以链接您的发现。但这与您的代码没有太大区别。

Item.find({}).populate('foo').exec(function(err, items) {
    Item.find(items).populate('bar').exec(function(err, items) {
        // Even more nests if you like
    });
});

关于javascript - 填充嵌套引用 mongoosejs 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747283/

相关文章:

javascript - Mongo JavaScript 验证

Javascript 加载不工作

javascript - Browserify/JavaScript,otherjs.myfunction 不是 function()

javascript - 在 Fabric js 中的两个对象之间添加动画

json - Artifactory npm 发布失败 PUT 404

mongodb - 何时对 mongodb 中的多个键进行索引

MongoDB - 返回特定字段(不包括层次结构)

javascript - 如何在 asp.net.core 中使用 Ajax 发布表单数据和文件?

javascript - 为 Node.js 中的方法设置 before/after 钩子(Hook)

node.js - 如果我没有使用 GitHub,npm 如何提交 package-lock.json