メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

🗄️ 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 } } を返します。getMongoClientwithMongo は別の 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.valuefindResources に渡される projection です。返されたドキュメントを消費する前に result.isOk() を確認してください。失敗時、result.error は提供されたエラークラスとメッセージを含む BlockError です。

一般的なタスク

タスク起点契約
ドメインエラーでコレクションをクエリfindResourcesfindResources{ filter, options? } を受け取り、Result を返し、データベース失敗時に呼び出し元が提供した BlockError サブクラスを作成します
選択されたドキュメントから Mongo _id を除外buildWithoutMongoIdFindOptionsbuildWithoutMongoIdFindOptionsFindOptions projection を作成します;成功した値をクエリ block に渡してください
サービスまたはカスタム block のためにコレクションを取得Database driversDatabase driversgetMongoClientwithMongo を文書化します;サービスページは必要な dataStores を文書化します

リファレンスマップ

ページ目的
Blocks完全な Mongo block リファレンス。

関連モジュール

Database driversgetMongoClientwithMongo を所有します。Composition primitivesapplyPayloadArgs を説明します。Error handlingBlockErrorResult 処理を説明します。OrderProfileNotificationProduct block はドメイン固有のエラークラスで findResources をラップします。