🍎

MongoDBの基本

2023/10/20に公開

MongoDBの基本的な取得クエリについて

MongoDBは非常に人気のあるNoSQLデータベースで、ドキュメント指向のデータモデルを採用しています。この記事では、MongoDBの基本的なデータ取得クエリについて初心者向けに説明し、具体的なクエリの例を提供します。

データベースとコレクションの選択

実際のアプリケーションでMongoDBを利用する際には、通常ドライバやライブラリを使用してデータベースとコレクションを選択します。以下はNode.jsの場合の例です。

const { MongoClient } = require('mongodb');
const client = new MongoClient('mongodb://localhost:27017');
await client.connect();
const db = client.db('yourDatabase');
const collection = db.collection('yourCollection');

findメソッド

findメソッドはコレクション内のドキュメントを検索する基本的な方法です。このメソッドは2つの主な引数を取ります: クエリオブジェクトとプロジェクションオブジェクトです。

例1: 全てのドキュメントを取得

const allDocuments = await collection.find().toArray();

例2: 特定の条件を満たすドキュメントを取得

const adultDocuments = await collection.find({ "age": { "$gte": 21 } }).toArray();

プロジェクションオブジェクトを使用すると、返されるドキュメントのフィールドを制御できます。

const names = await collection.find({}, { projection: { "name": 1 } }).toArray();

findOneメソッド

findOneメソッドは条件を満たす最初のドキュメントを返します。findメソッドと同様に、クエリオブジェクトとプロジェクションオブジェクトを引数として取ることができます。

例:

const johnDocument = await collection.findOne({ "name": "John Doe" });

プロジェクションオブジェクトを使用すると、返されるドキュメントのフィールドを制御できます。

const johnAge = await collection.findOne({ "name": "John Doe" }, { projection: { "age": 1 } });

ソート、スキップ、リミット

sort, skip, limitメソッドを使用すると、クエリ結果をさらに制御できます。

例:

const sortedSkippedLimitedDocuments = await collection.find()
    .sort({ "age": 1 })
    .skip(5)
    .limit(10)
    .toArray();

これらの基本的なクエリは、MongoDBでデータを検索し取得する際の基盤となります。
さらに詳細は、MongoDBの公式ドキュメントを参照してください。

Discussion