databases
MongoDB(ドキュメントデータベース、BSONドキュメント、aggregation pipeline、Atlas cloud)およびPostgreSQL(リレーショナルデータベース、SQLクエリ、psql CLI、pgAdmin)を扱うことができます。データベーススキーマの設計、クエリとaggregationの記述、パフォーマンス最適化のためのインデックス調整、データベースマイグレーション、レプリケーションとシャーディングの設定、バックアップおよびリストア戦略の実装、データベースユーザーと権限の管理、クエリパフォーマンスの分析、本番データベースの管理など、様々なシーンで活用できます。
description の原文を見る
Work with MongoDB (document database, BSON documents, aggregation pipelines, Atlas cloud) and PostgreSQL (relational database, SQL queries, psql CLI, pgAdmin). Use when designing database schemas, writing queries and aggregations, optimizing indexes for performance, performing database migrations, configuring replication and sharding, implementing backup and restore strategies, managing database users and permissions, analyzing query performance, or administering production databases.
SKILL.md 本文
Databases Skill
MongoDB(ドキュメント指向)およびPostgreSQL(リレーショナル)データベースを使用するための統合ガイドです。ユースケースに適切なデータベースを選択し、両方のシステムをマスターしましょう。
このスキルを使用する場合
以下の場合に使用します:
- データベーススキーマとデータモデルの設計
- クエリの記述(SQLまたはMongoDBクエリ言語)
- 集約パイプラインまたは複雑なJOINの構築
- インデックスとクエリパフォーマンスの最適化
- データベースマイグレーションの実装
- レプリケーション、シャーディング、またはクラスタリングの設定
- バックアップとディザスタリカバリーの構成
- データベースユーザーおよび権限の管理
- スロークエリの分析とパフォーマンスの問題解決
- 本番環境のデータベースデプロイメント管理
データベース選択ガイド
MongoDBを選択する場合:
- スキーマの柔軟性: 頻繁な構造変更、異種データ
- ドキュメント中心: JSON/BSONデータモデルの自然な表現
- 水平スケーリング: 複数のサーバー間でシャーディングする必要がある
- 高い書き込みスループット: IoT、ロギング、リアルタイム分析
- ネストされた/階層的データ: 埋め込みドキュメントが推奨される
- 迅速なプロトタイピング: マイグレーションなしのスキーマ進化
最適用途: コンテンツ管理、カタログ、IoTタイムシリーズ、リアルタイム分析、モバイルアプリ、ユーザープロフィール
PostgreSQLを選択する場合:
- 強い一貫性: ACIDトランザクションが重要
- 複雑な関係: 多対多のJOIN、参照整合性
- SQL要件: チーム知識、レポーティングツール、BIシステム
- データ整合性: 厳密なスキーマ検証、制約
- 成熟したエコシステム: 豊富なツール、拡張機能
- 複雑なクエリ: ウィンドウ関数、CTE、分析ワークロード
最適用途: 金融システム、電子商取引トランザクション、ERP、CRM、データウェアハウス、分析
両方でサポート:
- JSON/JSONBストレージとクエリ
- フルテキスト検索機能
- 地理空間クエリとインデックス
- レプリケーションと高可用性
- ACIDトランザクション(MongoDB 4.0以降)
- 強力なセキュリティ機能
クイックスタート
MongoDBセットアップ
# Atlas (クラウド) - 推奨
# 1. mongodb.com/atlasでサインアップ
# 2. M0無料クラスタを作成
# 3. 接続文字列を取得
# 接続
mongodb+srv://user:pass@cluster.mongodb.net/db
# Shell
mongosh "mongodb+srv://cluster.mongodb.net/mydb"
# 基本操作
db.users.insertOne({ name: "Alice", age: 30 })
db.users.find({ age: { $gte: 18 } })
db.users.updateOne({ name: "Alice" }, { $set: { age: 31 } })
db.users.deleteOne({ name: "Alice" })
PostgreSQLセットアップ
# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib
# サービス開始
sudo systemctl start postgresql
# 接続
psql -U postgres -d mydb
# 基本操作
CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT, age INT);
INSERT INTO users (name, age) VALUES ('Alice', 30);
SELECT * FROM users WHERE age >= 18;
UPDATE users SET age = 31 WHERE name = 'Alice';
DELETE FROM users WHERE name = 'Alice';
一般的な操作
作成/挿入
// MongoDB
db.users.insertOne({ name: "Bob", email: "bob@example.com" })
db.users.insertMany([{ name: "Alice" }, { name: "Charlie" }])
-- PostgreSQL
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
INSERT INTO users (name, email) VALUES ('Alice', NULL), ('Charlie', NULL);
読み取り/クエリ
// MongoDB
db.users.find({ age: { $gte: 18 } })
db.users.findOne({ email: "bob@example.com" })
-- PostgreSQL
SELECT * FROM users WHERE age >= 18;
SELECT * FROM users WHERE email = 'bob@example.com' LIMIT 1;
更新
// MongoDB
db.users.updateOne({ name: "Bob" }, { $set: { age: 25 } })
db.users.updateMany({ status: "pending" }, { $set: { status: "active" } })
-- PostgreSQL
UPDATE users SET age = 25 WHERE name = 'Bob';
UPDATE users SET status = 'active' WHERE status = 'pending';
削除
// MongoDB
db.users.deleteOne({ name: "Bob" })
db.users.deleteMany({ status: "deleted" })
-- PostgreSQL
DELETE FROM users WHERE name = 'Bob';
DELETE FROM users WHERE status = 'deleted';
インデックス
// MongoDB
db.users.createIndex({ email: 1 })
db.users.createIndex({ status: 1, createdAt: -1 })
-- PostgreSQL
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_status_created ON users(status, created_at DESC);
リファレンスナビゲーション
MongoDBリファレンス
mongodb-crud.md- CRUD操作、クエリオペレータ、アトミック更新mongodb-aggregation.md- 集約パイプライン、ステージ、オペレータ、パターンmongodb-indexing.md- インデックスタイプ、複合インデックス、パフォーマンス最適化mongodb-atlas.md- Atlasクラウド設定、クラスタ、監視、検索
PostgreSQLリファレンス
postgresql-queries.md- SELECT、JOIN、サブクエリ、CTE、ウィンドウ関数postgresql-psql-cli.md- psqlコマンド、メタコマンド、スクリプティングpostgresql-performance.md- EXPLAIN、クエリ最適化、VACUUM、インデックスpostgresql-administration.md- ユーザー管理、バックアップ、レプリケーション、メンテナンス
Pythonユーティリティ
scripts/内のデータベースユーティリティスクリプト:
- db_migrate.py - 両方のデータベースのマイグレーションを生成および適用
- db_backup.py - MongoDBおよびPostgreSQLのバックアップとリストア
- db_performance_check.py - スロークエリを分析し、インデックスを推奨
# マイグレーション生成
python scripts/db_migrate.py --db mongodb --generate "add_user_index"
# バックアップ実行
python scripts/db_backup.py --db postgres --output /backups/
# パフォーマンスチェック
python scripts/db_performance_check.py --db mongodb --threshold 100ms
主な違いの概要
| 機能 | MongoDB | PostgreSQL |
|---|---|---|
| データモデル | ドキュメント(JSON/BSON) | リレーショナル(テーブル/行) |
| スキーマ | 柔軟、動的 | 厳密、事前定義 |
| クエリ言語 | MongoDBクエリ言語 | SQL |
| JOIN | $lookup(制限付き) | ネイティブ、最適化済み |
| トランザクション | マルチドキュメント(4.0以降) | ネイティブACI |
| スケーリング | 水平(シャーディング) | 垂直(プライマリ)、水平(拡張) |
| インデックス | シングル、複合、テキスト、地理空間など | B-tree、ハッシュ、GiST、GINなど |
ベストプラクティス
MongoDB:
- 1対少の関係には埋め込みドキュメントを使用する
- 1対多または多対多には参照ドキュメントを使用する
- 頻繁にクエリされるフィールドにインデックスを付ける
- 複雑な変換には集約パイプラインを使用する
- 本番環境では認証とTLSを有効化する
- マネージドホスティング用にAtlasを使用する
PostgreSQL:
- スキーマを第3正規形に正規化し、パフォーマンスのため非正規化を行う
- 参照整合性のために外部キーを使用する
- 外部キーと頻繁にフィルタリングされるカラムにインデックスを付ける
- EXPLAIN ANALYZEを使用してクエリを最適化する
- 定期的なVACUUMとANALYZEメンテナンス
- Webアプリ向けのコネクションプーリング(pgBouncer)
リソース
- MongoDB: https://www.mongodb.com/docs/
- PostgreSQL: https://www.postgresql.org/docs/
- MongoDB University: https://learn.mongodb.com/
- PostgreSQL Tutorial: https://www.postgresqltutorial.com/
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- nordeim
- ライセンス
- MIT
- 最終更新
- 2026/4/14
Source: https://github.com/nordeim/Prompt-Engineering / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。