簡體   English   中英

填充貓鼬查詢時展平多個字段

[英]flatten multiple fields when populating a mongoose query

我在帶有 expressjs 的貓鼬中有以下架構

const userSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
    }, 
    team: {
        type: String
    }, 
});


const dataPointSchema = new mongoose.Schema({
type: {
    type: String, 
    required: true,
    min: 2
}, 
value: {
    type: String, 
    required:  true
},
recorder: {
    type: String,
    required: true
},
player: 
  {type: Schema.Types.ObjectId, ref: 'User'},
date: {
    type: Date,
    default: Date.now

}
});

當我用用戶填充 dataPoint 時,我將玩家的團隊和 _id 作為一個對象,我想將其展平為以下結構:Population 命令:

    Datapoint.find({}).populate([{path:'player',select:['team']}])

電流輸出:

{
  player: {_id:"_id from User",team:"team from User"},
  _id: '1',
  type: 'shot',
  value: 'made',
  recorder: 'David',
  date: ' 2021-09-21T21:12:00.025Z',
  __v: 0,
}

想要的輸出

{
  player: "_id from User",
  _id: '1',
  type: 'shot',
  value: 'made',
  recorder: 'David',
  date: ' 2021-09-21T21:12:00.025Z',
  __v: 0,
  player.team: "team from User"
}

知道如何做到這一點嗎?

 const player = { player: {_id:"_id from User",team:"team from User"}, _id: '1', type: 'shot', value: 'made', recorder: 'David', date: ' 2021-09-21T21:12:00.025Z', __v: 0, } const flatPlayer = {...player ,player: player .player._id,team: player .player.team} console.log(flatPlayer)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM