nodeJSメモ帳

nodeJSのメモ帳です。

703 views

コレクションを作成する

まずは、mongoDBのドキュメントを作成するサンプルコードを以下に記す。

const MongoClient = require("mongodb").MongoClient;
const url = "mongodb://localhost:27017/gate";
const dbName = "gate";

const connectOption = {
  useNewUrlParser: true,
  useUnifiedTopology: true,
}

//ユーザードキュメントを作成する
function createUserDoc() {
  MongoClient.connect(url, connectOption, (error, client)=> {
    if(error) {
      console.log("createUserDoc DB 接続エラー");
    }
    else {
      console.log("接続に成功しました");
      let db = client.db(dbName);
      db.createCollection("users", (error, collection)=>{
        console.log(error);
        client.close();
      });
    }
  });
}

12行目でDBに接続する。
18行目でDBを取得して、19行目でコレクションを作成している。
このとき、21行目のようにDBを閉じたい場合は、createCollectionのコールバックの中で実行する必要がある。
下のコードの11行目のようにdb.createCollectionのコールバックを拾わずにcloseするとMongoError: Cannot use a session that has ended
というエラーが出力される。
これは、非同期プログラム固有のエラーで、createCollectionの実行が完了する前にDBを閉じてしまっているため発生する。

function createUserDoc() {
  MongoClient.connect(url, connectOption, (error, client)=> {
    if(error) {
      console.log("createUserDoc DB 接続エラー");
    }
    else {
      console.log("接続に成功しました");
      let db = client.db(dbName);
      db.createCollection("users");
    }
    client.close();
  });
}

コールバック関数の引数の調べ方

https://mongodb.github.io/node-mongodb-native/3.6/api/Db.html#~collectionResultCallback
を参考にする。
createCollectionの引数に指定するコールバック関数の定義はcollectionResultCallBack関数というもので、第一引数にerror、第二引数にcollectionを取る。

結構ドキュメントがしっかりしていて、助かる。

Page 9 of 13.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626