Mongodb-Ref动态填充grapqhl



我必须根据查询请求决定是否填充,但我不知道如何做到。

因此示例

如果我的模型用户看起来像这个

以下语法来自typegoose和typegraphql

class User {
@Field()
@prop()
name: string;
@Field()
@prop(ref:"House")
house: Ref<House>
}

这里有两个不同的查询

Query1

user {
name
} 

Query2

user {
name
house {
location
}
} 

在解析器中

User: () => {
const user = UserModel.find(blahblah)**.populate("house")**
return user
}

Query1不需要填充
,但Query2需要
在同一解析程序中!

我想根据查询的要求决定是否填充
如果不知道解析器中的实际查询是什么,我就无法决定是否填充。

我在stackoverflow中发现了非常相似的问题但没有合适的答案。。。解决Mongoose和GraphQL中的关系

我对graphql了解不多,但我认为如果请求该路径,有一些方法可以获得,所以以下方法应该有效:

let query = Model.find(basicQuery);
if (req.path) { // replace this with graphql's method to get if the path is requested
query = query.populate(yourPath);
}
const doc = await query.exec();

PS:但正如已经指出的那样,我认为在graphql(另一个解析器?(中有一些更好的方法可以做到这一点

相关内容

  • 没有找到相关文章

最新更新