mongodb集合名称的

时间:2018-11-14 19:07:30

标签: loopbackjs loopback v4l2loopback

我正在使用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

2 个答案:

答案 0 :(得分:1)

This来自2014年,但也许仍然有效。尝试不要按mongodboptions

  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