代码之家  ›  专栏  ›  技术社区  ›  Ashutosh

Mongoose Populate方法返回对象中的对象

  •  0
  • Ashutosh  · 技术社区  · 6 年前

    我在用猫鼬填充-

    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对象。不管怎样,我可以从外部获取用户id输出数据吗?所以我可以将数据发送到视图或前端。非常感谢你提前

    2 回复  |  直到 6 年前
        1
  •  0
  •   user9009353    6 年前

    您可以在聚合中使用$project。

        2
  •  0
  •   nanobar    6 年前

    我之前问过Mongoose的开发者,他说这是设计的。我确实同意你的看法,有时作为一个平面结构更合理,但你能做什么呢?

    你可以在这里读到这个问题: https://github.com/Automattic/mongoose/issues/7281

    手术后你得自己把它改成扁平的结构。