首页 > 解决方案 > 如何使用 ReactJs 在前端获取子文档数据猫鼬

问题描述

我想获取有关收集商的所有信息,其中包括前面使用 ReactJs 的另一个收集人员。使用邮递员,他们返回所有数据,但在前面他们不了解人员的数据我的架构看起来像这样

const commercantSchema = new mongoose.Schema({
    typeCom:{
        type:String,
        required:true
    }, 
    numRegistre:{
        type:String,
        required:true
    },
    personne:[{
        type:ObjectId,
        ref:"Personne"
    }]
    
})
const personneSchema = new mongoose.Schema({
    nom:{
        type:String,
        required:true}, 
    email:{
        type:String,
        required:true}, 
    type:{
        type:String,
        required:true},
    nomResponsable:{
        type:String,
        required:true},
    etat:{
        type:Boolean,
        default:false }
},{timestamps:true})

接口:


router.get('/allcom',(req,res)=>{
    Commercant.find()
.populate({
    path: 'personne',
    math: {_id:'peronne'},
})   
    .then(commercants=>{
        res.json({commercants})
    })
    .catch(err=>{
        console.log(err)
    })

})

在前面

const [data,setData] = useState([])
useEffect(()=>{
        fetch('/allcom',{
            headers:{
                "Authorization":"Bearer "+localStorage.getItem("jwt")
            }
        }).then(res=>res.json())
        .then(result=>{
         console.log(result)
            setData(result.commercants)
        })
    },[])
....

控制台日志结果

反应组件

标签: node.jsreactjsmongodbmongoose

解决方案


您可以执行以下操作:

result.commercants.map(arrItem => {return arrItem.personne}) 

推荐阅读