2017-01-16 1 views
0

Ich bin neu in der NoSQL-Welt und da Ionic 2 standardmäßig einfache Schlüsselwert-DB unterstützt, war ich hier ein wenig Hilfe.Ionic 2 Storage - Hinzufügen von Datensätzen

Meine App hat eine sehr große Form. Wie gehe ich vor, um neue Datensätze zu speichern? Wie kann ich diese bestimmten Datensätze abrufen?

Derzeit einen neuen Datensatz zu speichern, ich so etwas wie dies tue:

save(data){ 
    let newData = JSON.stringify(data); 
    this.storage.set('reports', newData); 
} 

Das Problem dabei ist, es überschreibt die Aufzeichnung statt einen neuen Datensatz einzufügen.

Ich Abrufen von Datensätzen wie folgt aus:

getData() { 
    return this.storage.get('reports'); 
} 

Wie gehe ich über einen bestimmten Datensatz mit bestimmten Werten in der gespeicherten JSON holen?

Danke.

Antwort

4

Was Sie tun müssten, ist Berichte als ein Array zu machen und es auf den Speicher zu setzen. jedes Mal wenn Sie brauchen einen neuen Datensatz einzufügen, gehen Sie einen

function(newData){ 
    var some_variable = storage.get('reports'); //get Existing Table 
    some_variable.push(newData); //Inserts the new record to array 
    storage.set('reports', some_variable); //Saves report with updated data 
} 

Allein für einen bestimmten Bericht bekommen, ich hoffe, Sie haben einige ID oder ein einzigartiges Attribut y, die Sie einen Bericht unterscheiden kann. Vorausgesetzt, dass Sie den Bericht json haben, wie unten:

var report {id : "UniqueID", name : "A sample report json"} 

dann den Bericht zu erhalten,

function(reportId){ 
    var reports = this.storage.get('reports');//fetches your reports Array 
    var wantedReport = {};//Variable to store the wanted report 
    reports.forEach(function(r){ //Looping the array.You can use a forloop as well 
     if(r.id === reportId){ //filtering for the wanted reportId 
      wantedReport = r; // storing the report to variable 
     } 
    }) 
    return wantedReport; //Returning the report to the caller. 
} 

Alternativ Wenn Sie Sql verwendet werden und wollen eine SQL-ähnliche Möglichkeit, diese Daten zu speichern, dann Sie kann die Sqlite cordova plugin installieren und speichern Sie Ihre Daten in einem SQL-DB.

+0

Ausgezeichnet, danke. Ich bin viel bequemer mit SQL arbeiten, wenn ich meinen relationalen DB-Hintergrund benutze, aber Ionic 2 unterstützt WebSQL nicht mehr, was veraltet ist und bald von Browsern nicht mehr unterstützt wird. Ich werde zwar irgendwann für iOS bereitstellen, aber ich möchte weiterhin @ ionic/storage verwenden, was plattformübergreifend ist, aber Sie müssen NoSQL verwenden. – Muhammad

+0

Ionic Standard WebSQL nur beim Testen in Browsern .. Wenn Sie Sqlite Cordova Plugin installiert haben, dann erhalten Sie einen tatsächlichen Sqlite Datenspeicher in Ihrer App, wenn Sie es in Ihrem Handy ausführen .. aber ich denke, ionischen/Speicher ist sehr einfach und einfach um zu lernen, sobald Sie die NoSql Lernkurve überwunden haben. :-) –

+0

Können Sie sich das ansehen? http://stackoverflow.com/questions/41689516/ionic-2-and-json-data-addition Danke. – Muhammad