我正在尝试使用MongoDB构建API,但此时此刻我被困住了...
我有2张桌子
问题:
_id
问题
答案
right_answer
播放的问题:
_id
userId
questionId
createdAt
因此,假设我需要创建一个请求,以基于playQuestions(questionId和userId)随机选择一个特定用户之前没有玩过的问题!
因此,如果您有一些想法可以帮助我进行构建, 谢谢!
答案 0 :(得分:1)
我不认为这在MongoDB中是很自然的事情,并且会导致数据库操作效率低下。这是因为这两个集合是不相关的,所以您需要将它们集合在一起。由于这不是典型的MongoDB操作,因此这将是一个昂贵的过程。
此外,对于每个新问题,都需要再次重复执行此昂贵的操作(以MongoDB术语表示)。
据我了解,您需要针对特定玩家_id
评估所有questionId
问题与所有_id
之间的设定差异。
建议您不要在MongoDB中完成整个操作,
_id
进行查询,并将其存储在变量中。questionId
。_id
。PlayedQuestions
集合。这样,当用户想要获取下一个问题时,您无需每次都进行昂贵的联接。该信息已被缓存在应用程序中。