Ionic 2存储 - 添加记录

时间:2017-01-16 06:41:15

标签: ionic-framework nosql

我是NoSQL世界的新手,因为默认情况下Ionic 2支持简单的键值DB,所以我在这里得到了一些帮助。

我的应用程序表单非常大。如何保存新记录?如何检索这些特定记录?

目前,为了保存新记录,我正在做这样的事情:

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

这个问题是它覆盖了记录而不是插入新记录。

我正在检索这样的记录:

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

如何使用存储的JSON中的某些值来获取特定记录?

感谢。

1 个答案:

答案 0 :(得分:4)

您需要做的是将报告作为数组并将其设置为存储。 每当您需要插入新记录时,请执行

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
}

为了单独获取特定报告,我希望您有一些ID或唯一属性y,您可以区分报告。假设您的报告json如下:

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

然后获取报告,

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.
}

或者,如果您习惯使用Sql并希望采用类似Sql的方式存储这些数据,那么您可以安装Sqlite cordova plugin并将数据存储在Sqlite数据库中。