2017-02-22 7 views
0

Ich habe gerade angefangen Loopback mit und ich habe dieses ‚Orders‘ Modell:Loopback - löschen Sie einen Datensatz mit zusammengesetzten Schlüsseln

{ 
    "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": {} 
} 

sagen, ich will eine Bestellung über seine zusammengesetzten Schlüssel (Client und OrderId) löschen. Ich benutze diese Methode, aber es wird nicht gelöscht den Rekord:

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(); 
       } 
       }); 

Ich habe auch versucht deleteById() Methode verwendet, aber es nimmt nur eine ID/Schlüssel. Irgendeine Abhilfe hier?

Vielen Dank im Voraus.

Antwort

0

Delete-Methoden sind nicht , z. B. in Loopback-Instanz - Sie können nicht tun order.delete(). Sie sollten verwenden destroyAll wie es Methode, die Masse von Datensätzen löschen verwendet, die

ich bestimmte where Klausel bin passen ziemlich sicher, wenn Sie versuchen, zu:

 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 
      } 
      }); 
Verwandte Themen