В MongoDB, как правильно обновлять ссылочный объект при сохранении другого объекта? - PullRequest
0 голосов
/ 14 апреля 2020

Я использую Mon goose ODM. Имея 2 схемы - я хотел бы убедиться, что при создании нового Поставщика его значение ID добавляется в массив ссылочных объектов - suppliers для SupplierType.

Supplier:

name: {
    type: String,
    required: true,
    minlength: 2,
    maxlength: 255,
  },
  ...
supplier_type: { type: ObjectId, ref: 'SupplierType' },
}

SupplierType:

name: {
    type: String,
    required: true,
    minlength: 2,
    maxlength: 50,
  },
suppliers: [{ type: ObjectId, ref: 'Supplier' }],
};

Когда пользователь делает POST для создания нового Supplier - я выполняю следующее:

const supplier = new Supplier({
    name: req.body.name,
    ...
    supplier_type: req.body.supplier_type,
  });
await supplier.save();

Это, конечно, , не обновляет / не добавляет новый Supplier в массив suppliers на Supplier Type, поэтому я делаю следующее:

// Save the supplier
await supplier.save();

// Add the new Supplier's ID to the `suppliers` array on the `Supplier Type`
await SupplierType.update(
    {
      _id: supplier.supplier_type,
    },
    { $push: { suppliers: supplier.id } }
);

Я хотел бы знать, является ли это наилучшей практикой, и если нет, я хотел бы знать, как лучше достичь той же цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...