我有两个集合,如清单和任务。两个模式如下所示
清单架构将如下所示
{
"_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 输出是空的。任何帮助是极大的赞赏。提前致谢!
我在访问另一个容器中的一个容器路线时遇到问题。例如,我有两个微服务,分别称为user-service和api-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)
任何帮助将不胜感激,在此先感谢!