node.js - Mongodb $lookup 动态集合

标签 node.js mongodb mongoose

我有以下架构,其中项目类型可能会有所不同,并在 connections.kind 中提到。

var userSchema = new Schema({
  name: String,
  connections: [{
    kind: String,
    item: { type: ObjectId, refPath: 'connections.kind' }
  }]
});

var organizationSchema = new Schema({ name: String });

我正在尝试进行动态查找,以便填充项目对象。但这似乎不起作用。

db.users.aggregate([
    {
        $lookup:{
            from: '$connections.kind',
            localField: 'connections.item',
            foreignField: '_id',
            as: 'items'
        }
    }
])

我知道我可以用 mongoose.populate 做到, 但想知道 $lookup 是否可行

最佳答案

到目前为止,您还不能。 from 字段不能是表达式,必须是字符串文字。但是,您可以在此处跟踪一个 Unresolved 问题,它似乎正是您所需要的:https://jira.mongodb.org/browse/SERVER-22497 .

关于node.js - Mongodb $lookup 动态集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902878/

相关文章:

javascript - Promise 流

json - 无法将objectID解码为数组

node.js - 使用 Node js、express和mongodb在点击位置时在谷歌地图上显示用户信息

node.js - Nodejs Mongoose - 一次数据库调用 = 两个按不同标准排序的独立数组

javascript - 通过 mongoose 过滤自定义键或值

javascript - 如何使用 JavaScript 中的 moment.js/Date 将 EST 时间数据转换为本地时间

javascript - Angular js 观察 session 存储

javascript - process.getuid() 不适用于 Windows

node.js - MongoDB 找不到 Promise 类型定义

Mongodb查询项目