2017-02-22 34 views
0

Я только начал использовать кольцевую проверку и у меня есть эта модель «Orders»:Loopback - удалить запись с составными ключами

{ 
    "name": "Orders", 
    "base": "PersistedModel", 
    "idInjection": true, 
    "options": { 
    "validateUpsert": true 
    }, 
    "properties": { 
    "Client": { 
     "type": "string", 
     "id": 1, 
     "required": true 
    }, 
    "OrderId": { 
     "type": "string", 
     "id": 2, 
     "required": true 
    }, 
    "OrderName": { 
     "type": "string", 
     "required": true 
    } 
    }, 
    "validations": [], 
    "relations": {}, 
    "acls": [], 
    "methods": {} 
} 

сказать, что я хочу, чтобы удалить заказ, используя его составные ключи (Client и OrderId). Я использую этот метод, но он не удаляет запись:

var filter = { 
       where: { 
        Client: 'AB123', 
        OrderId: 'ORD1', 
        OrderName: 'Coffee' 
       } 
      }; 

Orders.findOne({filter: filter}, function(err, order){ 
       if(err){ 
        console.log(err); 
       }else{ 
        console.log(order); //prints { Client: 'AB123', OrderId: 'ORD1', OrderName: 'Coffee' } 
        order.destroy(); 
       } 
       }); 

Я также попытался с помощью метода deleteById(), но он принимает только один идентификатор/ключ. Любой обходной путь здесь?

Заранее спасибо.

ответ

0

Методы удаления не являются prototype Например, экземпляр, основанный на loopback - вы не можете сделать order.delete(). Вы должны использовать destroyAll как это метод, который используется для удаления большой части записей, которые соответствуют определенному where пункту

Я довольно уверен, что если вы пытаетесь:

 var filter = { 
      where: { 
       Client: 'AB123', 
       OrderId: 'ORD1', 
       OrderName: 'Coffee' 
      } 
     }; 

     Orders.destroyAll(filter.where, function(err, result){ 
      if(err){ 
       console.log(err); 
      }else{ 
       console.log('Sucess', result); // {count:X} <- how much records deleted 
      } 
      });