2017-01-16 1 views
0

저는 NoSQL 세계에 처음 왔으며 기본적으로 이오닉 2는 간단한 키 - 값 DB를 지원하기 때문에 여기에서 도움이되었습니다.이오니아 2 스토리지 - 레코드 추가

내 앱의 크기가 매우 큽니다. 새 레코드를 저장하려면 어떻게해야합니까? 특정 레코드를 어떻게 검색합니까? 현재

, 나는이 같은 일을하고, 새로운 기록을 저장합니다 :

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

이의 문제는 대신 새 레코드를 삽입하는 기록을 덮어 씁니다. 이 같은

I 검색하고 기록 : 나는 저장된 JSON에서 특정 값을 사용하여 특정 레코드를 가져 오는 대해 어떻게 가야합니까

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

?

감사합니다.

답변

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를 바랍니다. 당신은 SQL을 사용하고 당신이 데이터를 저장하는 SQL과 같은 방법을하려는 경우, 또는

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

을 : 당신이 다음과 같이 보고서 JSON을 가정 Sqlite cordova plugin을 설치하고 데이터를 Sqlite DB에 저장할 수 있습니다.

+0

우수 감사합니다. 필자는 관계형 DB 배경에서 SQL을 사용하는 것이 더 편하지만, Ionic 2는 더 이상 WebSQL을 지원하지 않으므로 더 이상 지원되지 않으며 곧 브라우저에서 지원되지 않을 것입니다. 결국 iOS 용으로 배포 할 예정이지만 크로스 플랫폼이지만 @ NoSQL을 사용하도록 요구하는 @ ionic/storage를 사용하고 싶습니다. – Muhammad

+0

브라우저에서 테스트 할 때만 webSql에 대한 Ionic 기본값이 있습니다. Sqlite cordova 플러그인을 설치 한 경우 휴대 전화에서 실행할 때 앱에 실제 Sqlite 데이터 저장소가 생성되지만 이온/저장 장치는 매우 간단하고 쉽습니다 NoSql 학습 곡선을 지나면 배우십시오. :-) –

+0

이것 좀 봐 주시겠습니까? http://stackoverflow.com/questions/41689516/ionic-2-and-json-data-addition 감사합니다. – Muhammad