객체 레벨DB
evelDB는 키-값 쌍의 형태로 사전 개체를 만들고 관리하는 데 사용되는 fibjs의 내장 데이터베이스 작업 개체입니다. LevelDB 개체를 사용하면 키-값 쌍 데이터 저장, 쿼리, 삭제 및 열거와 같은 작업을 쉽게 구현할 수 있습니다. Google의 오픈소스 LevelDB 구현을 기반으로 하여 고효율, 신뢰성, 확장성의 장점을 가지고 있습니다.
LevelDB 객체 생성은 매우 간단합니다.db.openLevelDB지정된 이름으로 데이터베이스 객체를 생성하는 메서드입니다. 예를 들어:
1
2var db = require("db");
var test = db.openLevelDB("test.db");
안에,dbfibjs의 데이터베이스 작업 개체이며 openLevelDB 메서드는 leveldb 데이터베이스를 여는 데 사용되며 test.db는 데이터베이스 이름이며 함수는 반환합니다.test개체는 데이터베이스를 운영하는 개체입니다.
LevelDB 개체에서 지원하는 주요 작업은 다음과 같습니다.
- set(key, value): 키-값 데이터를 설정하고, 키 값이 없으면 새로운 데이터를 삽입합니다.
- get(key): 지정된 키 값의 값을 조회합니다.
- has(key): 지정된 키가 존재하는지 확인합니다.
- remove(key): 지정된 키 값의 모든 값을 삭제합니다.
- forEach(func): 데이터베이스의 모든 키-값 쌍을 열거합니다.
- between(from, to, func): 데이터베이스에서 키-값이 from과 to 사이에 있는 키-값 쌍을 열거합니다.
- toJSON(key): 개체의 JSON 형식 표현을 반환하고 일반적으로 개체에 의해 정의된 읽을 수 있는 속성 집합을 반환합니다.
- begin(): 현재 데이터베이스에서 트랜잭션을 엽니다.
- commit(): 현재 트랜잭션을 커밋합니다.
- close(): 현재 데이터베이스 연결 또는 트랜잭션을 닫습니다.
예를 들어:
1
2
3
4
5
6
7
8
9
10
11
12
13var db = require("db");
var test = db.openLevelDB("test.db");
test.set("test_key", "test_value");
var value = test.get("test_key");
console.log("test_key:", value.toString());
test.remove("test_key");
console.log("has test_key:", test.has("test_key"));
test.close();
위는 키-값 쌍 데이터를 편리하고 유연하게 조작할 수 있는 LevelDB 객체의 기본 사용법 및 예입니다. 실제 응용 프로그램에서는 스토리지, 캐싱 및 로깅과 같은 시나리오에서 사용하여 데이터 읽기 및 쓰기 효율성을 개선하고 프로그램 논리를 단순화하며 개발 복잡성을 줄일 수 있습니다.
상속 관계
멤버 함수
has
지정된 키 값을 가진 데이터가 데이터베이스에 존재하는지 확인
1Boolean LevelDB.has(Buffer key) async;
호출 매개변수:
- key:Buffer, 확인할 키 값을 지정합니다.
반환 결과:
- Boolean, 키가 존재하는지 여부를 반환합니다.
get
지정된 키 값의 값 쿼리
1Buffer LevelDB.get(Buffer key) async;
호출 매개변수:
- key:Buffer, 쿼리할 키 값을 지정합니다.
반환 결과:
- Buffer, 키 값에 해당하는 값을 반환하거나 존재하지 않는 경우 null을 반환합니다.
mget
지정된 키에 대한 값 집합 쿼리
1NArray LevelDB.mget(Array keys);
호출 매개변수:
- keys: 배열, 쿼리할 키-값 배열을 지정합니다.
반환 결과:
- NArray, 키 값을 포함하는 배열을 반환합니다.
set
키 값 데이터 설정, 키 값이 없으면 새 데이터 삽입
1
2LevelDB.set(Buffer key,
Buffer value) async;
호출 매개변수:
mset
키-값 데이터 세트 설정, 키 값이 없으면 새 데이터 삽입
1LevelDB.mset(Object map);
호출 매개변수:
- map: 객체, 설정할 키-값 데이터 사전 지정
mremove
지정된 키에 대한 값 세트를 삭제합니다.
1LevelDB.mremove(Array keys);
호출 매개변수:
- keys: 배열, 삭제할 키-값 배열을 지정합니다.
remove
지정된 키 값의 모든 값 삭제
1LevelDB.remove(Buffer key) async;
호출 매개변수:
- key:Buffer, 삭제할 키 값을 지정합니다.
forEach
데이터베이스의 모든 키-값 쌍 열거
1LevelDB.forEach(Function func);
호출 매개변수:
- func: 함수, 열거 콜백 함수
콜백 함수에는 두 개의 매개변수(값, 키)가 있습니다.
1
2
3
4
5
6var db = require("db");
var test = new db.openLevelDB("test.db");
test.forEach(function(value, key) {
...
});
between
데이터베이스에서 from과 to 사이의 키-값으로 키-값 쌍을 열거합니다.
1
2
3LevelDB.between(Buffer from,
Buffer to,
Function func);
호출 매개변수:
- from:Buffer, 열거형에 포함되는 열거형의 최소 키 값
- to:Buffer, 열거형의 최대 키 값, 이 키 값은 열거형에 포함되지 않습니다.
- func: 함수, 열거 콜백 함수
콜백 함수에는 두 개의 매개변수(값, 키)가 있습니다.
1
2
3
4
5
6var db = require("db");
var test = new db.openLevelDB("test.db");
test.between("aaa", "bbb", function(value, key) {
...
});
begin
현재 데이터베이스에서 트랜잭션 시작
1LevelDB LevelDB.begin();
반환 결과:
- LevelDB, 열린 트랜잭션 객체를 반환합니다.
commit
현재 트랜잭션 커밋
1LevelDB.commit();
close
현재 데이터베이스 연결 또는 트랜잭션을 닫습니다.
1LevelDB.close() async;
toString
개체의 문자열 표현을 반환하고 일반적으로 "[네이티브 개체]"를 반환하며 개체는 자체 특성에 따라 다시 구현될 수 있습니다.
1String LevelDB.toString();
반환 결과:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
개체의 JSON 형식 표현을 반환하며 일반적으로 개체에 의해 정의된 읽기 가능한 속성 모음을 반환합니다.
1Value LevelDB.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용하지 않음
반환 결과:
- Value, JSON 직렬화 가능 값을 반환합니다.