如何在猫鼬中获得多个结果并将其组合在一个单一的响应中

在API(Route)调用中,我希望有3个猫鼬查询,然后将结果组合成一个响应json。


查询


student

  .countDocuments

  (

    {}

  )

  .then(stundentNumber => {

    return stundentNumber

  })


teacher

  .countDocuments

  (

    {}

  )

  .then(teacherNumber => {

    return teacherNumber;

  })


staff

  .countDocuments

  (

    {}

  )

  .then(staffNumber => {

    return staffNumber;

  });

期望的回应


res.json({

    teacher: teacherNumber,

    student: stundentNumber,

    staff: staffNumber

});

如何使用nodejs/猫鼬来完成


一只斗牛犬
浏览 80回答 2
2回答

LEATH

如果你使用的是 's,那么可以像下面这样尝试,Promise.all() 将帮助您并行执行所有操作:async-awaitasync function getCounts() {    let [student,teacher,staff] = await Promise.all([student.countDocuments({}),teacher.countDocuments({}),staff.countDocuments({})]);    return {student,teacher,staff};}/** call this function in main handler function where you get API call */getCounts().then((data)=>{res.json(data)}).catch((err)=>{console.log(err)})

慕盖茨4494581

您必须建立学生,教师和员工模型const mongoose = require("mongoose"),{Schema} = mongoose,  studentSchema = new Schema(    {      name: {        first: {          type: String,          trim: true        },        last: {          type: String,          trim: true        }      },      studentNumber: {        type: Number,        required: true,        lowercase: true,        unique: true      },    }其他两个型号相同。之后,您必须编写函数查询。详细了解查询。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript