macOSでMongoDBをNode.jsから使う
MongoDB on macOS: Node.jsのプログラミングにおけるインストールと実行
MongoDBは、人気のあるNoSQLデータベースです。Node.jsアプリケーションと統合して、柔軟でスケーラブルなデータストレージを提供します。macOS上でMongoDBをインストールして実行する方法を解説します。
Homebrewのインストール
Homebrewは、macOSのパッケージマネージャーです。MongoDBをインストールするために、まずHomebrewをインストールする必要があります。ターミナルで以下のコマンドを実行してください:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
MongoDBのインストール
Homebrewを使用してMongoDBをインストールします:
brew install mongodb-community
MongoDBの起動
MongoDBを起動するには、以下のコマンドを実行します:
brew services start mongodb-community
MongoDBが正常に起動していることを確認します:
mongo
MongoDBシェルが起動したら、db
コマンドで現在のデータベースを確認できます。
Node.jsからMongoDBに接続
Node.jsアプリケーションからMongoDBに接続するには、mongodb
モジュールを使用します。例えば、以下のように接続し、データを挿入することができます:
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = d b.db("mydb");
var myobj = { name: "T ai", age: 30, city: "Tokyo" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});
このコードでは、MongoDBに接続し、mydb
データベースのcustomers
コレクションにドキュメントを挿入しています。
Node.jsからMongoDBに接続するコード例
MongoDBの接続とデータの挿入
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = d b.db("mydb");
var myobj = { name: "T ai", age: 30, city: "Tokyo" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});
- insertOne
コレクションにドキュメントを挿入します。 - collection
指定したコレクションを取得します。 - db
接続したデータベースオブジェクトを取得します。 - connect
MongoDBサーバーに接続します。 - url
MongoDBサーバーの接続文字列を指定します。 - MongoCli ent
MongoDBクライアントのインスタンスを作成します。
データの検索
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("customers").findOne({}, function(er r, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
- fin dOne
コレクションから最初のドキュメントを検索します。
データの更新
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { name: "Tai" };
var newvalues = { $set: { age: 31 } };
dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
if (err) throw err;
console.log("1 document updated");
db.clo se();
});
});
- updateOne
指定した条件に一致するドキュメントを更新します。
データの削除
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { name: "Tai" };
dbo.collection("customers").deleteOne(myquery, function(err, res) {
if (err) throw err;
console.log("1 document deleted");
db.close();
});
});
- 手動インストール
MongoDBのバイナリファイルを直接ダウンロードしてインストールすることも可能です。 - Homebrew以外のパッケージマネージャー
Homebrewの代わりに、MacPortsやFinkなどの他のパッケージマネージャーを使用することもできます。
MongoDBの起動方法
- コマンドライン
毎回起動する場合は、ターミナルからmongod
コマンドを実行します。 - システムサービス
MongoDBをシステムサービスとして登録し、自動起動させることができます。
- 直接接続
mongodb
モジュールを使用して直接接続する方法に加え、Mongooseを使用することで、より簡潔なコードを書くことができます。 - Mongoose
Mongooseは、MongoDBのオブジェクトモデリングツールです。よりオブジェクト指向的な方法でMongoDBを操作できます。
例: Mongooseを使用した接続とデータ操作
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console .log('MongoDB connected'))
.catch(err => c onsole.error(err));
const userSchema = new mongoose.Schema({
name: String,
age: Number
});
const User = mongoose.model('User', userSchema);
// データの挿入
const user = new User({ name: 'Tai', age: 30 });
user.save()
.then(() => console.log('User saved'))
.catch(err => console.error(err));
// データの検索
User.findOne({ name: 'Tai' })
.then(user => console.log(user))
.catch(err => console.error(err));
node.js mongodb macos