猫鼬填充方法返回对象

时间:2019-01-15 11:23:05

标签: javascript node.js mongodb mongoose

我正在使用猫鼬填充-

let allLeaders = await DAOManager.populate(
        models.Users,
        { firstName: "Mayank" },
        {firstName: 1, lastName: 1, district: 1},
        { lean : true},
        { path: "userId", select: "county designation gender" }
    );

在用户模型中-

let Users = new schema({
userId: { type: schema.Types.ObjectId, ref: 'hubiloUsers' }})

输出:

 {
    "_id": "5a05799b936a8c707f0e022f",
    "userId": {
        "_id": "5a057915c31eb5601da9b75f",
        "designation": "CTO ",
        "gender": "male",
        "county": "India"
    },
    "firstName": "Mayank", 
    "lastName": "Sharma", 
    "district": "ABC"
    }

问题---在输出中,我得到了userid对象。无论如何,我可以在外面获取userId输出数据。这样我就可以将数据发送到视图或前端。预先非常感谢

2 个答案:

答案 0 :(得分:0)

您可以为聚合使用$ project。

答案 1 :(得分:0)

我之前曾问过Mongoose的开发者,他说这是设计使然。我确实同意您的观点,有时将其作为平面结构更有意义,但是您能做什么!

您可以在此处阅读问题:https://github.com/Automattic/mongoose/issues/7281

手术后,您必须自行将其更改为平面结构。