QueryBuilder の動作パート 1

Patricia Arquette
リリース: 2024-11-26 08:41:10
オリジナル
620 人が閲覧しました

QueryBuilder in Action Part 1

一般に Node.js または特に Total.js を使用してアプリケーションを構築する場合、データのクエリと効率的な管理が不可欠です。このブログでは、Total.js QueryBuilder を使用して基本的なデータ操作を実行する方法について説明します。この最初のパートでは、基本的な概念を紹介し、データの挿入や取得などの主要なアクションを示し、開始するための実用的な例を紹介します。

はじめに: Total.js での QueryBuilder の探索

Total.js の QueryBuilder は、データのフィルタリング、挿入、更新、取得などの操作を通じてさまざまなデータベースと対話するための強力な抽象化レイヤーを提供します。軽量アプリケーションに取り組んでいる場合でも、複雑なクエリを管理している場合でも、QueryBuilder は Node.js アプリケーション向けのシンプルかつ柔軟な ORM ソリューションを提供します。

データベースのサポートと実装

QueryBuilder は中間層として機能し、データベース エンジンの詳細を抽象化します。これを効果的に利用するには、既存の実装を統合するか、要件を満たす独自の実装を構築する必要があります。 Total.js は複数のデータベース エンジンをサポートし、さまざまなユースケースに柔軟に対応します。

現在利用可能な実装は次のとおりです:

  • NoSQL Embedded Database (TextDB): これは Total.js コアに含まれる軽量のファイルベースのデータベースで、小規模なアプリケーションやプロトタイピングに最適です。
  • PostgreSQL: 最も堅牢で機能が豊富なリレーショナル データベースの 1 つである QueryBuilder を利用します。
  • MySQL: この広く使用されているデータベースと統合して、スケーラブルで高性能なソリューションを実現します。
  • SQLite: この軽量のサーバーレス データベースで QueryBuilder を活用し、迅速な展開や組み込みアプリケーションを実現します。

QueryBuilder のセットアップ

このガイドでは、組み込みの NoSQL (TextDB) データベースから始めて、スキーマを定義し、データのクエリ、挿入、更新などの基本的なアクションを実行する方法を示します。最終的には、これらの操作を他のサポートされているデータベース エンジンに適応させるスキルが身につくでしょう。

データベースのセットアップ

効果的に学習するために、サンプル ユーザー データを含むテスト NoSQL データベース ファイルを作成します。

データベースのセットアップ: サンプル ユーザー レコードを保存するためのdatabases/users.nosql ファイルを作成します:

{"id": 2, "name": "Bob", "age": 30}
{"id": 3, "name": "Charlie", "age": 28}
{"id": 4, "name": "Diana", "age": 22}
{"id": 5, "name": "Edward", "age": 35}
{"id": 6, "name": "John", "age": 45}
{"id": 7, "name": "Fiona", "age": 27}
{"id": 8, "name": "George", "age": 29}
{"id": 9, "name": "Hannah", "age": 24}
{"id": 10, "name": "Isaac", "age": 31}
{"id": 11, "name": "Julia", "age": 26}
ログイン後にコピー
ログイン後にコピー

知っておくべきこと: データベース フォルダーに .nosql ファイルを手動で作成する必要はありません。存在しない場合、フレームワークは挿入操作中に作成できます。ただし、.nosql ファイルの内容はプレーンテキストであるため、その構造を理解することが重要です。おそらく、特定のケースを修正するのに役立つでしょう。

スキーマ定義: schemas/users.js にアクションを含むスキーマを作成します。ユーザーのリスト、取得、挿入のためのアクションを定義します。

QueryBuilder の基本的なアクションと実践的な例

schemas/users.js で、ユーザーのリストと挿入のためのアクションを定義します。このスキーマは、QueryBuilder メソッドを使用してデータをフィルタリングし、特定のレコードを取得し、データベースに新しいユーザーを追加します。

1.フィルターを使用してユーザーをリストする
まず、名前や年齢などの基準に基づいてユーザーを取得するリスト アクションを定義します。

{"id": 2, "name": "Bob", "age": 30}
{"id": 3, "name": "Charlie", "age": 28}
{"id": 4, "name": "Diana", "age": 22}
{"id": 5, "name": "Edward", "age": 35}
{"id": 6, "name": "John", "age": 45}
{"id": 7, "name": "Fiona", "age": 27}
{"id": 8, "name": "George", "age": 29}
{"id": 9, "name": "Hannah", "age": 24}
{"id": 10, "name": "Isaac", "age": 31}
{"id": 11, "name": "Julia", "age": 26}
ログイン後にコピー
ログイン後にコピー

使用例:

ここでは、リストを使用してユーザーをフィルタリングするいくつかのバリエーションを示します。

  • 名前でフィルタリング:
NEWSCHEMA('Users', function(schema) {

    schema.action('list', {
        name: 'List users',
        query: 'page:Number, sort:String, name:String',
        params: 'id:String',
        action: async function($) {
            // Example: filter by name
            var users = await DATA.find('nosql/users').where('name', $.query.name).promise();
            $.callback(users); 
        }
    });
});
ログイン後にコピー
  • 最初のユーザーのみを取得:
var users = await ACTION('Users/list').where('name', 'John').promise();
console.log(users);
ログイン後にコピー

2. ID によるユーザーの取得
もう 1 つの便利な機能は、ID でユーザーを取得することです。 QueryBuilder の .id() メソッドを使用すると、これが簡単になります。

var user = await DATA.find('nosql/users').first().promise();
console.log(user);
ログイン後にコピー

使用例:

var builder = DATA.find('nosql/users');
builder.id($.params.id);
// or builder.where('id', $.params.id);
$.callback(await builder.promise());
ログイン後にコピー

3.新しいユーザーの挿入
次に、新しいユーザーをデータベースに追加する挿入アクションを定義しましょう。

var user = await ACTION('Users/list').params({ id: 5 }).promise();
console.log(user);  // Retrieves user with id 5
ログイン後にコピー

このアクションにより、ユーザーがdatabases/users.nosqlに追加されます。挿入アクションを呼び出す方法は次のとおりです。

使用例:

schema.action('insert', {
    name: 'Inserting new users',
    input: '*name:String, age:Number',
    output: 'success:Boolean',
    action: function($, model) {
        DATA.insert('nosql/users', model).callback(function(err) {
            if (err) {
                console.error(err);
            } else {
                $.success(true);
            }
        });
    }
});
ログイン後にコピー

実際の使用例: QueryBuilder の動作

1.フィルターされた名前でユーザーを取得

// in `definitions/test.js`
ON('ready', function() {
  var result = await ACTION('Users/insert', { name: 'Alice', age: 25 }).promise();
    console.log(result);
});
ログイン後にコピー

2. ID でユーザーを取得

async function getUsersByName() {
    var users = await ACTION('Users/list').query({ name: 'Hannah' }).promise();
    console.log(users);
}
getUsersByName();
ログイン後にコピー

3.新しいユーザーを挿入し、更新されたリストを取得します

async function getUserByID() {
    var user = await ACTION('Users/list').params({ id: 4 }).promise();
    console.log(user);
}
getUserByID();
ログイン後にコピー

結論

QueryBuilder の動作の最初の部分では、基本的な NoSQL データベースの作成、スキーマ アクションの定義、QueryBuilder メソッドを使用したユーザーのリスト、フィルター、取得、挿入などの基本事項を説明しました。これらの概念が現実のシナリオでどのように機能するかを理解できるように、各操作の実践的なコード例を検討しました。
次のパートでは、Total.js でデータを効率的に管理するための完全なツールキットを提供する、より高度な QueryBuilder メソッドと複雑なフィルタリングについて詳しく説明します。
QueryBuilder in Action パート 2 にご期待ください。Total.js アプリケーションを強化するための高度なクエリ技術をさらに詳しく説明します!

以上がQueryBuilder の動作パート 1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート