我正在使用Loopback 4,并尝试使用属性配置Model注释,以配置如何在Mongo中创建集合。
我有一个名为say Client的模型,我希望Mongo中的集合称为Clients。与文档的交叉令人困惑,因为它们在v4文档中引用了v3的属性。
我已经尝试过了:
import {Entity, model, property} from '@loopback/repository';
@model({
settings: {strict: false},
name: 'client',
plural: 'clients',
options: {
mongodb: {
collection: 'clients',
},
},
})
export class Client extends Entity {
@property({
type: 'string',
id: true,
defaultFn: 'uuidv4',
index: true,
})
id: string;
@property({
type: 'string',
required: true,
})
name: string;
@property({
type: 'string',
})
code?: string;
constructor(data?: Partial<Client>) {
super(data);
}
}
在没有喜悦的情况下,仍将集合创建为类名称Client
答案 0 :(得分:1)
This来自2014年,但也许仍然有效。尝试不要按mongodb
键options
settings: {strict: false},
name: 'client',
plural: 'clients',
mongodb: {
collection: 'clients',
},
答案 1 :(得分:0)
请注意,所有模型设置必须嵌套在settings
属性内,LB4尚不支持顶级设置。
据我所知,LB4并未使用选项plural
。
我认为以下代码应为您工作:
@model({
name: 'client',
settings: {
strict: false
mongodb: {
collection: 'clients',
},
},
})
export class Client extends Entity {
// ...
}
更新:我打开了一个GitHub问题,以讨论如何使LB3的用户更容易使用@model
装饰器。参见https://github.com/strongloop/loopback-next/issues/2142