Как передать элементы из ref ObjectId's? - PullRequest
0 голосов
/ 08 апреля 2020

enter image description here Я пытаюсь создать небольшой личный сайт для ставок. Мне удалось получить массивы ObjectId в каждой коллекции, ссылаясь на другую. Но теперь я мучаюсь, чтобы получить предметы из этой коллекции на страницах просмотра. Как я могу получить больше, чем только ObjectId и передать элементы. Я смотрел на .populate (). это путь к go? Если да, могу ли я, в этом случае, пользователи с информацией из схемы предположения (которая относится к схеме соответствия)

//route//


router.get("/:id", function(req, res){
    User.findById(req.params.id)
    .populate("guess")
    .exec(function(err,foundUser){
        if(err){
            console.log(err);
        } else {
            res.render("users/show",{user:foundUser});
    }
 });
});


-----------------------
//viewPage//


<%user.guessList.forEach(function(guess){%>
  <div> <%= guess %></div> //need items of this guesses
<% }) %>
------------------

Схемы в виде рисунка

1 Ответ

0 голосов
/ 08 апреля 2020

Я не уверен, что понял, чего вы хотите, но если я это сделал, вам нужно исправить свои схемы другими способами, чтобы добиться того, чего вы хотите. Я постараюсь добавить их, а вы сами их проверите; вам может потребоваться опубликовать другие вопросы в зависимости от сложности.

Когда вы говорите: «База данных пользователей будет содержать массив со всеми предположениями, которые они сделали». Я считаю, что это то, что вы хотите:

Первая предложенная модификация

guesslist: [{ type: mongoose.SchemaTypes.ObjectId, ref: "Guess" }];// this will make possible for you to populate with Guess models

И когда вы populate попробуйте это:

populate("guesslist");//it should be the name of the field to be populated
...