亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據用戶輸入重新組織而不復制 MongoDB 文檔?

如何根據用戶輸入重新組織而不復制 MongoDB 文檔?

慕標琳琳 2022-10-21 14:22:56
我正在使用 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"                }            ], }當然,可能有數百個相關問題,但只有兩個用戶回答。
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊


db.collection.aggregate([

  {

    "$group": {

      "_id": "$question",

      "data": {

        "$push": "$$ROOT"

      }

    }

  },

  {

    "$project": {

      "data._id": 0,

      "data.question": 0

    }

  }

])

它按問題分組并僅計劃需要的內容。


查看完整回答
反對 回復 2022-10-21
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號