オブジェクト組み込みオブジェクト

オブジェクトSQLite

SQLite オブジェクトは組み込みモジュールですdbSQLite データベースのメンバー。主に SQLite データベースの接続と操作を担当し、SQLite データベースの作成、クエリ、挿入、更新などの操作に使用できます。同時に、SQLite オブジェクトは、SQL のバックアップやフォーマットなどの高度な操作も提供します。SQLite 接続オブジェクトはトランザクション操作もサポートします

実際のアプリケーションでは、通常、ビジネス ニーズに基づいて SQLite タイプのデータ テーブルを作成し、データの追加、削除、変更、クエリなどの操作を実行します。次に例を示します。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var db = require('db') // open a SQLite database var sqlite = db.openSQLite('test.db') // use execute method to create a table sqlite.execute('CREATE TABLE test (id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL)') // use execute method to insert data sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 1, 'Alice', 18) sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 2, 'Bob', 20) sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 3, 'Charlie', 22) // use execute method to query data var rs = sqlite.execute('SELECT * FROM test') console.log(rs) // use execute method to update data sqlite.execute('UPDATE test SET name=?, age=? WHERE id=?', 'Marry', 19, 1) // use execute method to delete data sqlite.execute('DELETE FROM test WHERE id=?', 2)

SQLite には vec_index モジュールも組み込まれており、SQLite データベース上のベクトル フィールドにインデックスを作成し、ベクトル フィールドに基づいて検索し、ターゲット ベクトルに最も類似したベクトル セットを取得できます。[1, 2, 3] などのベクトルを表す数値型配列の使用をサポートし、ベクトル次元をサポートします。さらに、vec_index はトランザクション内のバッチ操作をサポートします。

簡単な例を次に示します。

1 2 3 4 5 6 7 8
var db = require('db'); var path = require('path'); var conn = db.openSQLite(path.join(__dirname, 'vec_test.db')); conn.execute('create virtual table vindex using vec_index(title(3), description(3))'); conn.execute(`insert into vindex(title, description, rowid) values("[1,2,3]", "[3,4,5]", 3)`);

ベクトルの取得は、vec_search 関数を使用して実行できます。たとえば、次のようになります。

1 2 3 4
var key = [1, 2, 5.1234]; var limit = 1; var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}")`);

vec_search は、最も近いベクトルのコレクションと距離の配列を返します。距離は小さいものから大きいものへと並べられています。複数の最も近いベクトル セットを返す必要がある場合は、次のように :limit パラメーターを使用できます。

1 2 3 4
var key = [1, 2, 5.1234]; var limit = 1; var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}:10")`);

相続関係

メンバーのプロパティ

fileName

文字列、現在のデータベースファイル名

1
readonly String SQLite.fileName;

timeout

整数、クエリおよびデータベース タイムアウトの設定 (ミリ秒単位)

1
Integer SQLite.timeout;

type

文字列、現在の接続データベースの種類を照会します。

1
readonly String SQLite.type;

メンバー関数

backup

現在のデータベースを新しいファイルにバックアップします

1
SQLite.backup(String fileName) async;

呼び出しパラメータ:

  • fileName: 文字列、バックアップ データベース ファイル名を指定します

close

現在のデータベース接続を閉じます

1
SQLite.close() async;

use

現在のデータベース接続のデフォルトのデータベースを選択します

1
SQLite.use(String dbName) async;

呼び出しパラメータ:

  • dbName: 文字列、データベース名を指定します

begin

現在のデータベース接続でトランザクションを開始します

1
SQLite.begin(String point = "") async;

呼び出しパラメータ:

  • point: 文字列。トランザクションの名前を指定します。デフォルトでは指定されていません

commit

現在のデータベース接続でトランザクションをコミットします

1
SQLite.commit(String point = "") async;

呼び出しパラメータ:

  • point: 文字列。トランザクションの名前を指定します。デフォルトでは指定されていません

rollback

現在のデータベース接続でトランザクションをロールバックする

1
SQLite.rollback(String point = "") async;

呼び出しパラメータ:

  • point: 文字列。トランザクションの名前を指定します。デフォルトでは指定されていません

trans

トランザクションを入力して関数を実行し、関数の実行に基づいてコミットまたはロールバックします。

1
Boolean SQLite.trans(Function func);

呼び出しパラメータ:

  • func: 関数、トランザクション方式で実行される関数

返される結果:

  • Boolean、トランザクションがコミットされているかどうかを返し、通常のコミットの場合は true を返し、ロールバックの場合は false を返し、トランザクションが失敗した場合はエラーをスローします。

func の実行結果は 3 つあります。

  • 関数は、操作の終了とアクティブな戻りを含めて通常に戻り、その時点でトランザクションは自動的にコミットされます。
  • 関数は false を返し、トランザクションはロールバックされます。
  • 関数操作エラー、トランザクションは自動的にロールバックされます

トランザクションを入力して関数を実行し、関数の実行に基づいてコミットまたはロールバックします。

1 2
Boolean SQLite.trans(String point, Function func);

呼び出しパラメータ:

  • point: 文字列、トランザクションの名前を指定します
  • func: 関数、トランザクション方式で実行される関数

返される結果:

  • Boolean、トランザクションがコミットされているかどうかを返し、通常のコミットの場合は true を返し、ロールバックの場合は false を返し、トランザクションが失敗した場合はエラーをスローします。

func の実行結果は 3 つあります。

  • 関数は、操作の終了とアクティブな戻りを含めて通常に戻り、その時点でトランザクションは自動的にコミットされます。
  • 関数は false を返し、トランザクションはロールバックされます。
  • 関数操作エラー、トランザクションは自動的にロールバックされます

execute

SQLコマンドを実行し、実行結果を返す

1
NArray SQLite.execute(String sql) async;

呼び出しパラメータ:

  • sql:文字列、文字列

返される結果:

  • NArrayは、結果レコードを含む配列を返します。要求が UPDATE または INSERT の場合、返される結果には、影響を受ける Id と insertId も含まれます。mssql は、insertId をサポートしません。

SQLコマンドを実行し、実行結果を返します。文字列はパラメータに従ってフォーマットできます。

1 2
NArray SQLite.execute(String sql, ...args) async;

呼び出しパラメータ:

  • sql: 文字列、書式文字列、オプションのパラメータは?で指定します。例: 「SELECT FROM TEST WHERE [id]=?」
  • args: ...、オプションのパラメータリスト

返される結果:

  • NArrayは、結果レコードを含む配列を返します。要求が UPDATE または INSERT の場合、返される結果には、影響を受ける Id と insertId も含まれます。mssql は、insertId をサポートしません。

createTable

データテーブルの作成

1
SQLite.createTable(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

dropTable

データテーブルの削除

1
SQLite.dropTable(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

createIndex

データテーブルのインデックスを作成する

1
SQLite.createIndex(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

dropIndex

データテーブルインデックスの削除

1
SQLite.dropIndex(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

insert

新しいレコードを挿入

1
Number SQLite.insert(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

返される結果:

  • Number、挿入を含む ID を返します。エンジンがサポートしていない場合は 0 を返します。

find

指定した条件に基づいてデータをクエリする

1
NArray SQLite.find(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

返される結果:

  • NArray、結果を含むレコードを返します

count

指定した条件に基づいてデータのレコード数をカウントします

1
Integer SQLite.count(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

返される結果:

  • Integer、結果を含むレコードの数を返します。

update

指定した条件に基づいてデータを更新します

1
Integer SQLite.update(Object opts) async;

呼び出しパラメータ:

  • opts:オブジェクト、パラメータリスト

返される結果:

  • Integer、更新を含むレコードの数を返します。

remove

指定した条件に基づいてデータを削除します

1
Integer SQLite.remove(Object opts) async;

呼び出しパラメータ:

  • opts: オブジェクト、オプションのパラメータリスト

返される結果:

  • Integer、更新を含むレコードの数を返します。

format

SQLコマンドをフォーマットし、フォーマットされた結果を返します。

1 2
String SQLite.format(String method, Object opts);

呼び出しパラメータ:

  • method: 文字列、要求されたメソッドを指定します
  • opts: オブジェクト、オプションのパラメータリスト

返される結果:

  • String、フォーマットされたSQLコマンドを返します。

SQLコマンドをフォーマットし、フォーマットされた結果を返します。

1 2
String SQLite.format(String sql, ...args);

呼び出しパラメータ:

  • sql: 文字列、書式文字列、オプションのパラメータは?で指定します。例: 「SELECT FROM TEST WHERE [id]=?」
  • args: ...、オプションのパラメータリスト

返される結果:

  • String、フォーマットされたSQLコマンドを返します。

toString

オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。

1
String SQLite.toString();

返される結果:

  • String、オブジェクトの文字列表現を返します。

toJSON

オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。

1
Value SQLite.toJSON(String key = "");

呼び出しパラメータ:

  • key: 文字列、使用されません

返される結果:

  • Value、シリアル化可能な JSON を含む値を返します