首页 > 解决方案 > 如何从 React.js 中的用户 id 获取用户名

问题描述

我用猫鼬创建了这个模式

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const QuestionSchema = new mongoose.Schema({
    user: {
        type: Schema.Types.ObjectId,
        ref: 'users'
    },
    question:{
        type:String
    },
    name:{
        type:String,
    },
    answerd:[
        {
            user:{
                type:mongoose.Schema.Types.ObjectId,
                ref:'users'
            }
        }
    ]
})

module.exports = Question = mongoose.model('question',QuestionSchema);

在我的全局状态 (REDUX) 我有状态

const initialState = {
    questions:[],
    question:null,
    loading:true,
    error:{}
};

元素问题存储问题对象,其中包含提出问题的用户的姓名、问题本身以及已回答的人。

在 .js 文件中的某些地方,我可以得到简单回答的用户的 id question.buzzed.map(user=> <h1> {user._id} </h1>),但是如何获得这个用户名,我也有一个用户模式,它具有名称、id 等属性

标签: node.jsreactjsmongodbmongooseredux

解决方案


您应该使用该populate方法。就像join在 SQL 中用于 mongoose 一样,因为它将您的答案连接到用户集合。根据您的代码,它可能如下所示:

Question.find({}).populate("answerd")

或类似的东西:

Question.find().populate({ path: 'answerd', select: 'username' });

有关更多信息,请阅读填充文档


推荐阅读