Есть ли способ создать один массив свойств с множеством mongoDB objectiID внутри - PullRequest
0 голосов
/ 31 января 2020

Я использую Loopback4. Когда я хочу добавить свойство mongoDb ObjectId внутри моей модели, я делаю это:

    @property({
        type: 'string',
        mongodb: {dataType: 'ObjectID'},
    })
    organizationId?: string;

Теперь я хочу создать массив со свойствами MongoDB ObjectId внутри, поэтому я попытался сделать:

    @property({
        type: 'array',
        itemType: 'string',
        mongodb: {dataType: 'ObjectID'},
    })
    tagsId?: string[];

но кажется, что весь массив преобразуется в один ObjectID внутри mongoDb.

Я хочу просто получить массив со многими ObjectId внутри . Я попробовал все в моем знании: этого было недостаточно.

1 Ответ

0 голосов
/ 11 февраля 2020

Я нашел решение: Шаг 1: создать модель с одним идентификатором. Шаг 2: Создайте массив с вашей новой моделью

Шаг 1: В вашей будущей модели (в моем случае: tagReference):

@model()
export class TagReference extends Entity {
    @property({
        type: 'string',
        mongodb: {dataType: 'ObjectID'},
    })
    id?: string;

    constructor(data?: Partial<TagReference>) {
        super(data);
    }
}

Шаг 2: Где вы хотите свой массив:

import {TagReference} from './tag-reference.model';

@model()
export class Resource extends BaseEntity {

    // ...

    @property({
        type: 'array',
        itemType: TagReference,
    })
    tagIds?: string[];

   // ...
}
...