一尘不染

Mongodb $ lookup动态集合

node.js

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

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

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

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

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

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


阅读 356

收藏
2020-07-07

共1个答案

一尘不染

到目前为止,您还不能。该from字段不能是表达式,而必须是字符串文字。但是,您可以在这里跟踪一个未解决的问题,该问题似乎恰恰是您所需要的:https
:
//jira.mongodb.org/browse/SERVER-22497。

2020-07-07