반응형
[JavaScript][NeDB] Unique Key 설정 방법
데이터를 insert 할 때 _id 제외한 다른 key 값이 중복되는 것을 막기 위한 unique 설정 방법이다.
nedb의 문서를 보면 indexing 부분에 unique 방법이 설명되어 있다.
만약, `_name` 필드에 unique 설정을 하려면 아래와 같이 선언해 주면 된다.
// local database const Datastore = require('nedb'); const appDir = app.getPath('userData'); // nedb 파일 생성 const db = new Datastore({ filename: './nedb.db', autoload: true }); // ex) _name 필드에 Unique Key 설정 db.ensureIndex({ fieldName: '_name', unique: true }, function (err) { if (err) console.log(err) });
nedb.db 파일을 보면 자동으로 unique 설정 옵션이 추가된다.
{"$$indexCreated":{"fieldName":"_name","unique":true,"sparse":false}}
주의 ! 두 개 이상의 필드를 한번에 indexing 할 수 없다.
[참고] https://github.com/louischatriot/nedb/issues/93
// ex) _name, _title 필드에 Unique Key 설정 db.ensureIndex({ fieldName: ['_name, _title'], unique: true }, function (err) { if (err) console.log(err) });
위와 같이 fieldName 에 리스트로 입력하더라도, _name과 _title 이(가) 함께 indexing 되지 않고
_name, _title이 각각 unique key 로 선언되어
만약 {_name: 'A', _title: '1'} 과 {_name: 'A', _title: '2'} 를 추가할 경우,
`_name`이 'A'로 동일하기 때문에 에러가 발생하게 된다.
[출처] https://github.com/louischatriot/nedb#inserting-documents
반응형
'WEB > JavaScript' 카테고리의 다른 글
[JavaScript][ES6] Did you forget to signal async completion? 오류 해결 방법 (0) | 2019.04.24 |
---|---|
[JavaScript] css style 제거 하는 방법 (0) | 2019.04.09 |
[JavaScript] 키보드 이벤트 ( 단축키 ) 생성하는 방법 (0) | 2019.04.03 |
[JavaScript] html2canvas 사용 할 때, transform 때문에 이미지가 잘린 경우. (0) | 2019.03.20 |
[JavaScript] html2canvas 사용 방법 (0) | 2019.02.20 |