メインコンテンツまでスキップ
バージョン: 0.14.0 (最新)

🧱 Mongoブロック

Mongoブロックは、@nodeblocks/backend-sdkblocks からエクスポートされる再利用可能なクエリヘルパーです。呼出元が指定したMongoDB Collection で動作し、HTTPレスポンスではなく neverthrowResult 値を返し、他のモジュールによってルートパイプラインに構成されます。

インベントリ

エクスポート種別入力結果 / 動作 / エラー
findResources非同期クエリブロックCollection{ filter, options? }BlockErrorConstructor、メッセージok(Document[])、または find または toArray がthrowした場合に err(new errorClass(errorMessage))
buildWithoutMongoIdFindOptions純粋なオプションビルダーなしok({ projection: { _id: 0 } }); エラーとならない。

詳細

findResources

実装

シグネチャ: findResources(collection, { filter, options? }, errorClass, errorMessage): Promise<Result<Document[], BlockError>>。渡されたままの collection.find(options.filter, options.options) を呼び出し、toArray() を待機する。投影、ページネーション、正規化、フィルター、ソート、デフォルトクエリオプションを追加しない; 責任は完全に呼出元にある。

成功時は MongoDBカーソルからのドキュメント配列である result を含む ok(result) を返す。find または toArray のいずれかがthrowした場合、err(new errorClass(errorMessage)) を返す。errorClass は1つの文字列から BlockError を構築する必要がある; キャッチされたデータベースエラーは返されるエラーに含まれない。空のクエリ結果は成功した ok([]) である。

findOrdersfindProfilesfindNotificationsfindProductResources で使用される。各ラッパーは独自のコレクション、エラークラス、メッセージを提供する。

buildWithoutMongoIdFindOptions

実装

シグネチャ: buildWithoutMongoIdFindOptions(): Result<{ projection: { _id: 0 } }, never>。同期して ok({ projection: { _id: 0 } }) を返し、後続のクエリによって選択されたドキュメントから _id を削除するMongoDB互換の FindOptions プロジェクションを返す。クエリを実行せず、MongoDBから既に取得された結果を変換しない。

入力もエラーパスもない。ルートパイプラインは成功した値を後続のクエリブロックへのオプション引数として渡さなければならない。findProfilesByIdentityIdRoute および getProfileFollowersRoutefindOrdersByOrganizationIdRoutefindProductsByOrganizationIdRoute および getProductLikersRoutegetOrganizationFollowersRoute のソースパイプラインで使用される。