【发布时间】:2020-06-17 21:10:09
【问题描述】:
我是 mongo 的新手。我在项目中有一个问题,在 mongo 中进行子查询与 mysql 相同。请在下方查看。
我有 2 个收藏
集合 1 -> 问题
{
"_id":"5ee9357528232c325c57b0f5",
"question": "What is true happiness ?",
"status": 1,
"category_id": "5ee9352d28232c325c57b0f1",
"created_at": "2020-06-16T21:11:17.795Z",
"updated_at": "2020-06-16T21:11:17.795Z",
}
集合 2 -> submit_answers
{
"_id": "5ee94254674c5f26043745c8",
"answer": "True happiness is the happiness of soul",
"status": 1,
"user_id": "5ed5f3db4ca9ff26e4dfc972",
"question_id": "5ee93bc5b3d8d828f01e4ced",
"created_at": "2020-06-16T22:06:12.509Z",
"updated_at": "2020-06-16T22:41:58.295Z"
}
现在我想检查所有问题以及用户提交的答案。如果用户没有回答任何问题,它将显示为空。我认为这个 SQL 查询会更好地解释我的问题。
let user_id = 1
SELECT *,(SELECT answer FROM submit_answers sa WHERE q.question_id=sa.question_id AND user_id="user_id") as answer FROM questions q
我不想使用循环,因为它会减慢响应速度。因为我有 200 多个问题。
请帮我解决这个问题
【问题讨论】:
-
在 MongoDB 中,这是通过聚合管道完成的。
-
嗨@D.SM,感谢您的回复。你能给我猫鼬的示例代码吗?我使用聚合,但我不了解聚合的详细信息。请帮我整理一下。谢谢
标签: node.js mongodb mongoose subquery mongoose-schema