我正在尝试显示数据库中的数据。我有 3 个架构,将所有架构合二为一。但是,组合数据没有显示。我附上了我的 3 架构。
async-wait 与 try-catch 一起工作正常,这对我来说似乎很干净。我也尝试关注mongoose populate。两者都返回相同的结果。
需要说明的是:我是新手。因此,不要对要遵循的最佳实践有很好的了解。
书籍架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const BookSchema = new Schema({
title: {
type : String,
required : [true, 'Book Title is Required'],
max : 100,
min : 5,
trim : true,
lowercase: true
},
author: {
type : Schema.Types.ObjectId,
ref : 'Author',
required: [true, 'Author is Required']
}
genre: [{
type: Schema.Types.ObjectId,
ref : 'Genre'
}]
}, { collection : 'book', timestamps: true });
BookSchema
.virtual('url')
.get(() => {
return 'book/' + this._id;
});
module.exports = mongoose.model('Book', BookSchema);
作者架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const AuthorSchema = new Schema({
firstName: {
type : String,
required : [true, 'First Name is Required'],
max : 100,
min : 5,
trim : true,
lowercase: true
},
lastName: {
type : String,
required : [true, 'Last Name is Required'],
max : 100,
min : 5,
trim : true,
lowercase: true
}
}, { collection : 'author', timestamps: true });
AuthorSchema
.virtual('name')
.get(() => {
return this.firstName + this.lastName;
});
module.exports = mongoose.model('Author', AuthorSchema);
流派架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const GenreSchema = new Schema({
name: {
type : String,
required : [true, 'Genre Name is Required'],
max : 100,
min : 3,
trim : true,
lowercase: true
}
}, { collection : 'genre', timestamps: true });
module.exports = mongoose.model('Genre', GenreSchema);
URL 未附加 ID
作者数据未显示
如果我使用 .populate(),那么。它正在显示(南)
如果我不使用填充,它不会返回任何内容
预期输出: 猿和天使(约翰)
当前输出: 猿和天使(NaN)
拉丁的传说
当年话下
相关分类