【发布时间】:2019-06-02 01:16:47
【问题描述】:
我是 React 和 Apollo 应用到 MongoDB 的新手,我遇到以下问题:
我有一个表(ID - ID_A - ID_B),我查询了这个表并返回了一个数组。之后,我必须在另一个表中为 Array 中的每个组件询问与 ID_A 的匹配。
所以我做了:
{this.props.firstGet.map((data, index) => {
const id = data.ID_A;
return (
<Query key={this.props.firstGet.id} query={QUERY} variables={{ id }}>
{({ loading, error, data }) => {
if (loading) return 'Loading...';
if (error) return `Error ${error.message}`;
this.test = this.test.concat({...data.getStartup, ...this.state.applicants[index]});
return(this.test.length === this.props.getApplicants.length ?
<LastTable startups={this.test}></LastTable>
: '')
}
}
</Query>
);
哪一个是解决我的问题的最佳做法? 我需要第一个数组,其中每个对象都带有第二个表的答案。 有没有办法在不使用 LastTable 的情况下直接进入主状态?
我如何解决它: 1)在MainTable MongoDB架构中添加:
ID_A: {
type: mongoose.Schema.ObjectId,
ref: 'Table1'
}
2)在graphQl shcema中:ID_A:Table1Object
3)在解析器中添加.populate('ID_A')
我现在将尝试插入一个新的,也许我有问题,但如果使用 MainTable ID_A 字段中的 ID 连接效果很好
【问题讨论】: