Mongoose将参考文档作为DTO移动到主文档

vohkndzv  于 2022-09-18  发布在  Go
关注(0)|答案(0)|浏览(86)

我想移动子文档到主文档,并返回没有任何嵌套文档的单个DTO,下面是我的示例data.js

Data.js

const mongoose = require('mongoose');

//city
const citySchema = new mongoose.Schema({
    cityName: { type: String, required: true, unique: true },
});

const City = mongoose.model('City', citySchema);

//country
const countrySchema = new mongoose.Schema({
    countryName: { type: String, required: true, unique: true },
});

const Country = mongoose.model('Country', countrySchema);

//user
const userSchema = new mongoose.Schema({
    username: { type: String, required: true },
    city: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'City',
        required: true,
    },
    country: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Country',
        required: true,
    },
    createdAt: { type: Date, required: true },
    updatedAt: { type: Date, required: true },
});

const User = mongoose.model('User', userSchema);

function getUser(id) {
    return User.findById(id)
        .populate('city')
        .populate('country')
        .exec();
};

用户当前返回的JSON响应:

{
  "_id": "6321ac3d14a57c2716f7f4a0",
  "name": "David",
  "city": {
      "_id": "63218ce557336b03540c9ce9",
      "cityName": "New York",
      "__v": 0
  },
  "country": {
      "_id": "632185bbe499d5505cafdcbc",
      "countryName": "USA",
      "__v": 0
  },
  "createdAt": "2022-09-14T10:26:05.000Z",
  "__v": 0
}

如何将城市名称和国家名称移动到主模型,并按以下格式响应JSON?

{
  "_id": "6321ac3d14a57c2716f7f4a0",
  "username": "David",
  "cityName": "New York",
  "countryName": "USA",
  "createdAt": "2022-09-14T10:26:05.000Z",
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题