node.js - 如何从 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 等属性
解决方案
您应该使用该populate
方法。就像join
在 SQL 中用于 mongoose 一样,因为它将您的答案连接到用户集合。根据您的代码,它可能如下所示:
Question.find({}).populate("answerd")
或类似的东西:
Question.find().populate({ path: 'answerd', select: 'username' });
有关更多信息,请阅读填充文档
推荐阅读
- bash - ssh连接断开后如何停止启动的程序
- r - 如何通过相应异常值的列表过滤数据框中的每一列数据
- sparql - SPARQL CONSTRUCT 中的动态谓词
- ios - 有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的当前位置?- 精灵套件
- php - 使用 GET 方法的 PHP Oauth1
- android - 将统一游戏发布到商店后按钮不起作用
- laravel - PAYPAL 与 Laravel 的集成
- c++ - 无符号短裤的 C++ 除法导致 int
- c++ - Listview 更改选择颜色
- python-3.x - ImportError:无法从“sklearn.utils.validation”导入名称“_deprecate_positional_args”