Context:
我正在开发一个测试网络应用程序,用户以考试形式回答问题 .
我目前有两个系列:
-
测试
-
问题
tests集合中的每个文档都有一个 questions
数组,其中包含问题集合中Mongo的文档ID .
My Question...
是否可以(一次性/一次性):使用提供的Mongo ID在测试中检索特定文档,然后使用保存在 questions
数组中的Mongo ID(在该文档中)然后从问题中提取文档?
我最接近的猜测是使用Mongoose的DBRef约定,但我不太明白如何在这种情况下使用它(即使我这样做,我也不明白如何检索多个问题并将它们保存在单个测试中) .
我很感激任何和所有的帮助!
P.S. 问题和测试是分开的原因是,当用户在网络应用程序中参加考试时,我们可以随机化问题的顺序 .
1 回答
走向另一个方向 . 将testId放在
Question
模型上:你有三种情况;你在内存中有一个
question
文档,你想找到它所属的test
:或者你在内存中有一个
question
文档,想要找到属于同一个测试的所有questions
:或者,你在内存中有一个
test
文档,想要找到所有的questions
:我看到
populate()
会弹出一个类似于你的问题的答案 . 我想确保人们意识到populate()
不是SQLJOIN
. 来自文档:populate()
只是序列化第二个find()
的语法糖 .