一般に Node.js または特に Total.js を使用してアプリケーションを構築する場合、データのクエリと効率的な管理が不可欠です。このブログでは、Total.js QueryBuilder を使用して基本的なデータ操作を実行する方法について説明します。この最初のパートでは、基本的な概念を紹介し、データの挿入や取得などの主要なアクションを示し、開始するための実用的な例を紹介します。
Total.js の QueryBuilder は、データのフィルタリング、挿入、更新、取得などの操作を通じてさまざまなデータベースと対話するための強力な抽象化レイヤーを提供します。軽量アプリケーションに取り組んでいる場合でも、複雑なクエリを管理している場合でも、QueryBuilder は Node.js アプリケーション向けのシンプルかつ柔軟な ORM ソリューションを提供します。
QueryBuilder は中間層として機能し、データベース エンジンの詳細を抽象化します。これを効果的に利用するには、既存の実装を統合するか、要件を満たす独自の実装を構築する必要があります。 Total.js は複数のデータベース エンジンをサポートし、さまざまなユースケースに柔軟に対応します。
現在利用可能な実装は次のとおりです:
このガイドでは、組み込みの 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 にアクションを含むスキーマを作成します。ユーザーのリスト、取得、挿入のためのアクションを定義します。
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); } }); } });
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 サイトの他の関連記事を参照してください。