nodeJSメモ帳

nodeJSのメモ帳です。

737 views

コレクションを作成する

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

  1. const MongoClient = require("mongodb").MongoClient;
  2. const url = "mongodb://localhost:27017/gate";
  3. const dbName = "gate";
  4. const connectOption = {
  5. useNewUrlParser: true,
  6. useUnifiedTopology: true,
  7. }
  8. //ユーザードキュメントを作成する
  9. function createUserDoc() {
  10. MongoClient.connect(url, connectOption, (error, client)=> {
  11. if(error) {
  12. console.log("createUserDoc DB 接続エラー");
  13. }
  14. else {
  15. console.log("接続に成功しました");
  16. let db = client.db(dbName);
  17. db.createCollection("users", (error, collection)=>{
  18. console.log(error);
  19. client.close();
  20. });
  21. }
  22. });
  23. }

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

  1. function createUserDoc() {
  2. MongoClient.connect(url, connectOption, (error, client)=> {
  3. if(error) {
  4. console.log("createUserDoc DB 接続エラー");
  5. }
  6. else {
  7. console.log("接続に成功しました");
  8. let db = client.db(dbName);
  9. db.createCollection("users");
  10. }
  11. client.close();
  12. });
  13. }

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

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