🗄️ Mongo
Mongo は、MongoDB コレクションのクエリと _id 除外のための 2 つの再利用可能な SDK block を提供します。これは HTTP サービスや feature セットではありません。
ここから始める
MongoDB Collection を作成または取得し、export された block を直接呼び出すか、他のドメインのルートパイプラインに持ち上げてください。接続ヘルパーは driver export であり、Database drivers で文書化されています。
mongoService、route、feature、handler、schema、validator モジュールはありません。findResources は既存の MongoDB Collection、フィルター/オプションのペア、エラーコンストラクター、エラーメッセージを受け取り、collection.find(...).toArray() に委譲します。buildWithoutMongoIdFindOptions は、MongoDB の内部 ID を省略したい呼び出し元に { projection: { _id: 0 } } を返します。getMongoClient と withMongo は別の drivers export であり、Mongo block export ではありません。
import {blocks, drivers, primitives} from '@nodeblocks/backend-sdk';
class ResourceQueryError extends primitives.BlockError {}
const db = drivers.getMongoClient('mongodb://127.0.0.1:27017', 'example');
const locations = db.collection('locations');
const options = blocks.buildWithoutMongoIdFindOptions();
if (options.isErr()) throw options.error;
const result = await blocks.findResources(
locations,
{filter: {type: 'city'}, options: options.value},
ResourceQueryError,
'Unable to find locations',
);
buildWithoutMongoIdFindOptions() は失敗しないため、options.value は findResources に渡される projection です。返されたドキュメントを消費する前に result.isOk() を確認してください。失敗時、result.error は提供されたエラークラスとメッセージを含む BlockError です。
一般的なタスク
| タスク | 起点 | 契約 |
|---|---|---|
| ドメインエラーでコレクションをクエリ | findResources | findResources は { filter, options? } を受け取り、Result を返し、データベース失敗時に呼び出し元が提供した BlockError サブクラスを作成します |
選択されたドキュメントから Mongo _id を除外 | buildWithoutMongoIdFindOptions | buildWithoutMongoIdFindOptions は FindOptions projection を作成します;成功した値をクエリ block に渡してください |
| サービスまたはカスタム block のためにコレクションを取得 | Database drivers | Database drivers は getMongoClient と withMongo を文書化します;サービスページは必要な dataStores を文書化します |
リファレンスマップ
| ページ | 目的 |
|---|---|
| Blocks | 完全な Mongo block リファレンス。 |
関連モジュール
Database drivers が getMongoClient と withMongo を所有します。Composition primitives は applyPayloadArgs を説明します。Error handling は BlockError と Result 処理を説明します。Order、Profile、Notification、Product block はドメイン固有のエラークラスで findResources をラップします。