Для создания пользовательских операций CRUD вы можете использовать обратную петлю реализации методов. Каждая модель в loopback наследуется классом Persistent, вы можете использовать методы по умолчанию для выполнения операций CRUD из удаленных методов. Посмотрите мои примеры ниже,
Операция создания
Ниже приведен пример создания документа в MongoDB, а также вставка записи в коллекцию журналов.
Test.createOrder = function (amount, callback) {
// Inserting object into database
Test.create({amount: amount, /*data to insert*/}, function(err, data) {
// Adding logs to the logs collection
Test.app.models.Log.insert({ message: "order created", /*data to insert*/}, function(err, data) {
callback(null);
});
});
};
В постоянной модели есть более удобные методы, которые можно использовать для выполнения операций создания в различных случаях, таких как upsert
, findOrCreate
, save
и т. Д.
Операция чтения
Ниже приведен пример получения нескольких документов из MongoDB на основе примененных фильтров, а также вставка записи в коллекцию журналов.
Test.findOrders = function (amount, callback) {
// Finding objects from database
Test.find(/** filters - Optional **/ { where: {}, limit: 10, fields: [], include: [], order: "", skip : 1}, function(err, data) {
console.log(data);
// Adding logs to the logs collection
Test.app.models.Log.insert({ message: "orders finded", /*data to insert*/}, function(err, logData) {
callback(data);
});
});
};
Здесь фильтры не являются обязательными. where
используется для указания условий, где вы можете использовать его подфильтры (например, gt
, lt
, nin
и т. Д.), Чтобы получить больше записей, зависящих от условий. fields
может использоваться для выбора определенных столбцов из коллекции, include
может использоваться для объединения различных коллекций на основе отношений. Остальные фильтры могут быть понятны из их названий. Для получения дополнительной информации о фильтрах, вы можете проверить ссылку здесь .
В постоянной модели также доступно много полезных методов, которые можно использовать для выполнения операций чтения в различных случаях, таких как find
, findOne
и т. Д.
Операция обновления
Ниже приведен пример обновления документов в MongoDB, а также вставка записи в коллекцию журналов.
Test.updateOrder = function (amount, callback) {
// Updating object into database
Test.updateAttribute(/* where filter */{id: 1}, {amount: 10, /*data to update*/}, function(err, data) {
// Adding logs to the logs collection
Test.app.models.Log.insert({ message: "order updated", /*data to insert*/}, function(err, data) {
callback(null);
});
});
};
Вы можете использовать каждый дополнительный фильтр where
для выполнения операции обновления. Опять же, в постоянной модели доступно много удобных методов, которые можно использовать в нескольких различных сценариях (например, updateAttribute
, updateAttributes
, createUpdates
, bulkUpdate
и т. Д.).
Операция удаления
Ниже приведен пример удаления документа из MongoDB, а также вставка записи в коллекцию журналов.
Test.deleteOrder = function (amount, callback) {
// Deleting object from database
Test.destroyById(123, function(err, data) {
// Adding logs to the logs collection
Test.app.models.Log.insert({ message: "order deleted", /*data to insert*/}, function(err, logData) {
callback(data);
});
});
};
Постоянная модель также содержит другой тип методов для выполнения операции удаления, основанный на различных сценариях (например, destroyAll
, destroyById
).
Официальная документация по CRUD
операциям
Вы также можете найти полную документацию по операциям CRUD в режиме loopback по нижеуказанным URL-адресам:
Ниже ссылка содержит все доступные методы постоянной модели, которые могут быть полезны для применения нескольких BL,
В приведенной выше ссылке также есть несколько методов для выполнения массовых операций.
Регистрация
Уже имеется несколько расширений, которые можно легко подключить с помощью loopback для выполнения операций регистрации, некоторые из них перечислены ниже:
- loopback-component-logger ( link ),
Это может быть полезно для регистрации операций в консоли или в базе данных.