从使用mongoose populate()函数的表中检索数据

时间:2018-03-20 11:01:19

标签: javascript reactjs api ecmascript-6

我有两个属性'user'的模型'username'& 'plan'其中'plan'是另一个模型'plan'的引用,其中属性为'name'& 'description'。现在当我在API中使用以下查询来检索数据时 -

`user.find().populate('plan')`  

我正在尝试使用

在前端渲染这些数据
this.state.users.map(re => (
    <tr key={re._id}>
        <th>{re.username}</th>
        <th>{re.plan}</th>
    </tr>
)

此处re.plan会返回该属性的_id。要获取name属性,我必须使用re.plan.name。由于我有一些没有任何plan属性的属性,因此返回错误。 Query ---

中的示例数据
{
    "_id": "5a8be9ce4f506927a8d2cacb",
    "username": "kjbfhisdugfiasdb",   
    "plan": {
        "_id": "5a64bbd3f671402b90ce5fc9",
        "name": " test 3"
    },
},
{
    "_id": "5a82bcb4c72440221442399f",
    "username": "test",
}

如何解决此问题? 提前致谢

2 个答案:

答案 0 :(得分:0)

您可以使用这样的条件渲染:

<th>{re.plan ? re.plan.name : ""}</th>

答案 1 :(得分:0)

只需渲染{re.plan && re.plan.name }