Py学习  »  MongoDB

nodejs中的双MongoDB请求

Saif Ejjilali • 4 年前 • 363 次点击  

嗨,我的应用程序中有两个请求 但是只有一个发送结果,我如何才能使它们都工作? 第一个是我所有建筑的一个集合,第二个是相同的集合,但我按campusname对整个文档进行排序。

我确实喜欢这样,但仍然没有工作,只发送了一个请求。

app.get('/buildings', async (req, res) => {
    try {
        await db.db('').collection('buildings').find({}).toArray(function (err, result) {
            res.send(result);
    });
        await db.db('').collection('buildings').aggregate([
        {$group : {_id: "$campusName", buildings : {$push : {buildingName : "$buildingName", phoneNumber :"$phoneNumber" }}}}
        ]).toArray(function (err, building) {
            res.send(building);
    });        
        } catch(err) {
            return res.json({
                         success: false,
                         message: 'error'
    });
        }
    });

这是我的新问题

app.get('/buildings', async (req, res) => {
    try {
        await db.db('').collection('buildings').find({}).toArray(async (err, result) => {


        await db.db('').collection('buildings').aggregate([
        {$group : {_id: "$campusName", buildings : {$push : {buildingName : "$buildingName", phoneNumber :"$phoneNumber" }}}}
        ]).toArray((err, building) => {
            res.send(result);
            res.send(building);
        });  
    });      
        } catch(err) {
            return res.json({
                         success: false,
                         message: 'error'
    });
        }
    });

最后,我所做的是将这两个查询分为两个这样的地址,并且i s=t对于我在前端处理和操作更好

app.get('/buildings', async (req, res) => {
    try{
        await db.db('').collection('buildings').find({}).toArray(function (err, result) {
            res.send(result);
    });
        } catch(err) {
        return res.json({
                     success: false,
                     message: 'error'
                 });
        }
    });

app.get('/buildings/percampus', async (req, res) => {
    try {
        await db.db('').collection('buildings').aggregate([
        {$group : {_id: "$campusName", buildings : {$push : {buildingName : "$buildingName", phoneNumber :"$phoneNumber" }}}}
      ]).toArray(function (err, building) {
            res.send(building);
    });
        } catch(err) {
        return res.json({
                     success: false,
                     message: 'error'
                 }); 
        }

    });
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37868
 
363 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Rajan Lagah
Reply   •   1 楼
Rajan Lagah    5 年前


app.get('/buildings', async (req, res) => {
    try {
        await db.db('').collection('buildings').find({}).toArray(function (err, result) { // second db search in this
        await db.db('').collection('buildings').aggregate([
        {$group : {_id: "$campusName", buildings : {$push : {buildingName : "$buildingName", phoneNumber :"$phoneNumber" }}}}
        ]).toArray(function (err, building) {
            //res.send({building:building,result:result}); 
            // or
            res.send(JSON.stringify{building:building,result:result});

    });        
        } catch(err) {
            return res.json({
                         success: false,
                         message: 'error'
    });
        }
    });
Milan Velebit
Reply   •   2 楼
Milan Velebit    5 年前

.get

app.get('/buildings', async (req, res) => {
    let res_obj = {}
    // Then execute your queries, and place the results inside this res_obj 
    ... queries and their handling ...
    res.send(res_obj);

{
    first_query_res: {
        ... 
    },
    second_query_res: {
        ... 
    }
}