我正在使用 Node.js、Mongoose 和 MongoDB。在 Postman 中進行測試。2個用戶可以回答問題。我想組織一下,稍后也顯示這些問題和 2 個用戶的答案。我可以實現將 2 個用戶的答案分成兩個不同的數組。但我想要的是:問題不應該重復,答案應該附加到兩個用戶回答的問題上。使用這段代碼,我幾乎達到了預期的結果,但并不完美。請看下面我的預期結果。 let user = await User.findById(req.user.id); let user2 = await User.find({ matched: user.email }); let answer = await Answer.find({ by: user.email, }); let answer2 = await Answer.find({ by: user2[0].email, }); var array = []; var allAnswers = {}; allAnswers["1"] = answer; allAnswers["2"] = answer2; array.push(allAnswers); res.json(allAnswers);不太好的結果:{ "1": [ { "question": "Question1", "answer": "some answer", "by": "user2" } ], "2": [ { "question": "Question1", "answer": "some answer", "by": "user1" }, { "question": "Question2", "answer": "some answer", "by": "user1" } ]}預期和期望的結果:{ "Question1": [ { "answer": "some answer", "by": "user2" }, { "answer": "some answer", "by": "user1" } ], "Question2": [ { "answer": "some answer", "by": "user1" } ]}由于 user2 沒有回答 Question2,我不想顯示:{ "Question1": [ { "answer": "some answer", "by": "user2" }, { "answer": "some answer", "by": "user1" } ], }當然,可能有數百個相關問題,但只有兩個用戶回答。
如何根據用戶輸入重新組織而不復制 MongoDB 文檔?
慕標琳琳
2022-10-21 14:22:56