Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 最佳实践,如何从mongoose中的参考字段获取信息?_Javascript_Mongodb_Api_Mongoose - Fatal编程技术网

Javascript 最佳实践,如何从mongoose中的参考字段获取信息?

Javascript 最佳实践,如何从mongoose中的参考字段获取信息?,javascript,mongodb,api,mongoose,Javascript,Mongodb,Api,Mongoose,我有一个Schema Users,它有一个类型为mongoose.Schema.Types.ObjectId的字段管理器,该字段管理器从另一个具有其他管理器信息的架构中放置管理器的id。 当我想在调用用户模式的结果中输入管理器名称时,我使用for循环,如下所示: const res = await axios.get('/api/users/all'); const config = { headers: { 'Content-Type': 'applicat

我有一个Schema Users,它有一个类型为
mongoose.Schema.Types.ObjectId的字段管理器,该字段管理器从另一个具有其他管理器信息的架构中放置管理器的id。
当我想在调用用户模式的结果中输入管理器名称时,我使用for循环,如下所示:

const res = await axios.get('/api/users/all');
    const config = {
      headers: {
        'Content-Type': 'application/json',
      },
    };
    //adding planner name to the data
    for (let element of res.data) {
      element.plannerName = await axios.post(
        '/api/planners/plannerName',
        { id: element.planner },
        config
      );
    }
这是可行的,但我觉得这是一个缓慢的解决方案。我是这个领域的新手,我想知道这是否是完成这项任务的最佳实践。
谢谢大家!

您要查找的是数据库语言中的
join

您必须将用户集合与管理器集合合并。为此,可以在查找后使用
populate()
函数

代码如下:

let users=wait User.find({}).populate('manager');

非常感谢您。这就是我要找的。我将确保阅读更多关于使用数据库中的populate和dictuals而不是在前端运行JS脚本来获取更好的查询的内容。我认为这样的性能更好。检查
Model.aggregation()
它是
mongodb
mongoose
的强大功能。