小编Sas*_*kha的帖子

$lookup 使用猫鼬

我有两个集合,如清单和任务。两个模式如下所示

清单架构将如下所示

{
        "_id": "5b7d0f77e231b6b530b0ee5a",
        "audit_checklist_type": "Weekly"

    },
    {
        "_id": "5b7d3f33e7a57f38084efb09",
        "audit_checklist_type": "Daily"
    }
Run Code Online (Sandbox Code Playgroud)

任务架构如下所示

    { 
        "_id": "5b7d65daf74be318e8378cf9",
        "checklist_id": "5b7d3f33e7a57f38084efb09"
    },
    {
        "_id": "5b7d662df74be318e8378cfb",
        "checklist_id": "5b7d3f33e7a57f38084efb09"
    }
Run Code Online (Sandbox Code Playgroud)

我的查询是

AuditChecklist.aggregate([
{ $match: {
  $and: [
        audit_checklist_type : "Daily"
  ]
  } },
  {
     $lookup: {
        from: 'AuditTask',
        localField: '_id',
        foreignField: 'checklist_id',
        as: 'TaskData'
     }
  },


  ]).exec();
Run Code Online (Sandbox Code Playgroud)

我正在尝试获得类似的输出

    {
        "_id": "5b7d3f33e7a57f38084efb09",
        TaskData": [
                    { 
                      "_id": "5b7d65daf74be318e8378cf9",
                      "checklist_id": "5b7d3f33e7a57f38084efb09"
                    },
                    {
                      "_id": "5b7d662df74be318e8378cfb",
                      "checklist_id": "5b7d3f33e7a57f38084efb09"
                    }
                   ]
    }
Run Code Online (Sandbox Code Playgroud)

但对我来说,由此产​​生的 TaskData 输出是空的。任何帮助是极大的赞赏。提前致谢!

mongoose mongodb aggregation-framework

4
推荐指数
1
解决办法
1万
查看次数

如何使用Docker在两个容器之间进行通信

我在访问另一个容器中的一个容器路线时遇到问题。例如,我有两个微服务,分别称为user-serviceapi-gateway。我正在尝试访问api-gateway中的用户服务路由。

我的api-gateway文件可能如下所示

  const userServiceProxy = httpProxy(http://localhost:8093);
  this.app.post('/admin/register', async(req, res) => {

      userServiceProxy(req, res);

  });
Run Code Online (Sandbox Code Playgroud)

api-gateway在端口8080上运行

我的用户服务文件可能如下所示

 app.post('/admin/register', function (req, res) {
  res.send('POST request')
 })
Run Code Online (Sandbox Code Playgroud)

当我通过带有8080端口的api网关访问路由时,我无法调用该路由,但是当我尝试使用8093端口访问时,我可以看到结果。

我的docker-compose文件可能如下所示

 version: '3'
 services:
   api-gateway:
     container_name: api-gateway
     build: './api-gateway'
     ports:
       - "8080:8080"
     links:
       - user-service
   user-service:
     build: ./user-service
     container_name: user-service
     ports:
     - "8093:8093"
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,在此先感谢!

node.js docker

2
推荐指数
1
解决办法
134
查看次数