所以我得到的错误是没有给定id的资源:"研讨会。时间表";\这是您可以使用的所有注册资源的列表。
这是我试图在adminbro 中可视化的资源
const LearnerSchema = new mongoose.Schema(
{
workshops: [
{
workshop: {
workshop_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'workshop',
},
code: {
type: String,
},
timeline: {
type: mongoose.Schema.Types.ObjectId,
ref: 'workshop.timelines',
},
},
],
{ timestamps: true }
);
这是车间模型:
const WorkshopSchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
},
description: {
type: String,
},
timelines: [
{
group: {
type: Number,
},
city: {
type: mongoose.Schema.Types.ObjectId,
ref: 'city',
},
description: {
type: String,
},
venue: {
type: mongoose.Schema.Types.ObjectId,
ref: 'venue',
},
month: {
type: String,
},
start: {
type: Date,
},
end: {
type: Date,
},
registration_start: {
type: Date,
},
registration_end: {
type: Date,
},
registrations: {
type: Number,
default: 0,
},
registrations_cancelled: {
type: Number,
default: 0,
},
d_reg: {
type: Number,
default: 0,
},
classLink: {
type: String,
default: '',
},
status: {
type: String,
default: 'E',
},
resources: {
_id: false,
videoSessions: { type: Boolean, default: false },
},
},
],
status: {
type: String,
enum: ['NEW', 'F', 'DISABLED'], //f = FEATURED
default: 'NEW',
},
},
{ timestamps: true }
);
WorkshopSchema.index({ name: 'text', description: 'text' });
module.exports = Workshop = mongoose.model('workshop', WorkshopSchema);
现在,我已经在adminbro选项中添加了这两种资源,但当adminbro试图从Collection中获取一些记录时,它失败了,并返回错误:
没有给定id为"的资源;研讨会。时间表";\这是您可以使用的所有注册资源的列表
可能影响这个问题的另一件事是,在MongoDB中,workshop对象中timeline的值是ObjectId和字符串的混合,但我尝试将所有对象值转换为ObjectId,但它仍然显示相同的错误。
非常感谢您的帮助。
也有同样的问题。
基本上,出现在resources
阵列中包括的模型中的任何ref
模型也必须包括在内。
在您的情况下,我建议您查看ResourceOptions(https://adminbro.com/ResourceOptions.html)查看是否可以包含嵌套属性
评论出你(type: mongoose.Schema.Types.ObjectId,
(都喜欢这样↓↓或者你也可以删除它。
// type: mongoose.Schema.Types.ObjectId,
它会很好用的。
这是不起作用的,因为默认情况下,Mongoose会将_id
属性添加到架构中,并且您正在显式定义它,因此需要在创建时显式插入它,但在AdminBro Dashboard中,您没有在创建任何新对象时添加_id
的选项。因此,对每个_id
生成字段进行注释。