Node.jsでMongoDBを使用する方法

このチュートリアルでは、Node.jsからMongoDBデータベースを操作する方法を紹介します。

なじみのない方MongoDBその基本とインストールおよび使用方法については、ガイドを確認してください:)

公式を使用しますmongodb npmパッケージ。作業中のNode.jsプロジェクトがすでにある場合は、を使用してインストールします

npm install mongodb

ゼロから始める場合は、で新しいフォルダを作成しますターミナル実行しますnpm init -y新しいNode.jsプロジェクトを起動してから、npm install mongodbコマンド。

MongoDBへの接続

あなたはmongodbパッケージを作成すると、そこからMongoClientオブジェクトを取得できます。

const mongo = require('mongodb').MongoClient

MongoDBサーバーへのURLを作成します。 MongoDBをローカルで使用する場合、URLは次のようになります。mongodb://localhost:27017、 なので27017デフォルトのポートです。

const url = 'mongodb://localhost:27017'

次に、mongo.connect()MongoDBインスタンスクライアントへの参照を取得するメソッド:

mongo.connect(url, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  }, (err, client) => {
  if (err) {
    console.error(err)
    return
  }
  //...
})

これで、を使用してデータベースを選択できます。client.db()方法:

const db = client.db('kennel')

コレクションを作成して取得する

あなたはを使用してコレクションを取得することができますdb.collection()方法。コレクションがまだ存在しない場合は、作成されます。

const collection = db.collection('dogs')

コレクションにデータを挿入するドキュメント

app.jsに、を使用する次の関数を追加します。insertOne()オブジェクトを追加するメソッドdogsコレクション。

collection.insertOne({name: 'Roger'}, (err, result) => {

})

を使用して複数のアイテムを追加できますinsertMany()、最初のパラメータとして配列を渡します。

collection.insertMany([{name: 'Togo'}, {name: 'Syd'}], (err, result) => {

})

すべてのドキュメントを検索

使用find()コレクションに追加されたすべてのドキュメントを取得するためのコレクションのメソッド:

collection.find().toArray((err, items) => {
  console.log(items)
})

特定のドキュメントを探す

オブジェクトをに渡しますfind()取得する必要があるものに基づいてコレクションをフィルタリングする方法:

collection.find({name: 'Togo'}).toArray((err, items) => {
  console.log(items)
})

1つの要素を取得することがわかっている場合は、スキップできます。toArray()呼び出しによるカーソルの変換findOne()

collection.findOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

既存のドキュメントを更新する

使用updateOne()ドキュメントを更新する方法:

collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => {
  console.log(item)
})

ドキュメントを削除する

使用deleteOne()ドキュメントを削除する方法:

collection.deleteOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

接続を閉じる

操作が完了したら、close()クライアントオブジェクトのメソッド:

client.close()

promiseまたはasync / awaitを使用する

私はそれらすべての例を使用して投稿しました折り返し電話構文。このAPIはサポートします約束(そして非同期/待機) 同じように。

たとえばこれ

collection.findOne({name: 'Togo'}, (err, item) => {
  console.log(item)
})

約束で使用することができます:

collection.findOne({name: 'Togo'})
  .then(item => {
    console.log(item)
  })
  .catch(err => {
  console.error(err)
  })

またはasync / await:

const find = async () => {
  try {
    const item = await collection.findOne({name: 'Togo'})
  } catch(err => {
  console.error(err)
  })
}

find()

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: