Mongodb Ref动态填充grapqhl?

Mongodb Ref动态填充grapqhl?,mongodb,graphql,typegraphql,typegoose,Mongodb,Graphql,Typegraphql,Typegoose,我必须根据查询请求决定是否填充,但我不知道如何填充 以身作则 如果我的模型用户是 下面的语法来自typegoose和typegraphql 查询2 user { name house { location } } 和在解析器中 User: () => { const user = UserModel.find(blahblah)**.populate("house")** return user } 查询1

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

以身作则

如果我的模型用户是

下面的语法来自typegoose和typegraphql

查询2

  user {
    name
    house {
      location
    }
  } 
和在解析器中

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

   return user
}
查询1不需要填充
但是查询2需要
在同一个解析器中

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

我在stackoverflow中发现了非常类似的问题 但是没有正确的答案。。。

我对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(另一个解析器?)中有更好的方法来实现这一点

不,它不是同一个解析器。。。它可以在优化。。。遵循一些[更好的]教程
User: () => {
   const user = UserModel.find(blahblah)**.populate("house")**

   return user
}
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();