GoでMongoDBセッションを正しく操作するにはどうすればよいですか?

Cortwave:

gopkg.in/mgo.v2GoアプリのデータベースとしてMongoDB(パッケージ)を使用しています。MongoDBのベストプラクティスによると、アプリケーションの起動時に接続を開き、アプリケーションの終了時に接続を閉じる必要があります。接続が閉じられることを確認するには、次のdefer構文を使用できます

session, err := mgo.Dial(mongodbURL)
if err != nil {
    panic(err)
}
defer session.Close()

このコードをmain関数で実行すると、すべてがうまくいきます。しかし、私はこのコードを別のgoファイルに入れたいです。実行すると、メソッドが実行された後にセッションが終了します。MongoDBのベストプラクティスに従ってGolangでセッションを開始および終了するための最良の方法は何ですか?

モノディープ:

このようなことができます。Dbの初期化を行うパッケージを作成する

    package common

    import "gopkg.in/mgo.v2"

    var mgoSession   *mgo.Session

    // Creates a new session if mgoSession is nil i.e there is no active mongo session. 
   //If there is an active mongo session it will return a Clone
    func GetMongoSession() *mgo.Session {
        if mgoSession == nil {
            var err error
            mgoSession, err = mgo.Dial(mongo_conn_str)
            if err != nil {
                log.Fatal("Failed to start the Mongo session")
            }
        }
        return mgoSession.Clone()
    }

クローンは、元のセッションと同じソケットを再利用します。

他のパッケージでは、このメソッドを呼び出すことができます:

package main

session := common.GetMongoSession()
defer session.Close()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

セッション変数を正しく渡すにはどうすればよいですか?

分類Dev

バックグラウンドセッション構成でiOS上でApolloGraphQLを正しく使用するにはどうすればよいですか?

分類Dev

セッションに保存されたユーザー名を cookie と一緒に正しく設定するにはどうすればよいですか?

分類Dev

OpenMPでセクションのロックを正しく使用するにはどうすればよいですか?

分類Dev

このPowerShellWebリクエストでセッションを正しく保存するにはどうすればよいですか?

分類Dev

startup-ipiを正しく使用してアプリケーションプロセッサを起動するにはどうすればよいですか?

分類Dev

EJBステートレスセッションBeanをWebモジュールに正しく挿入するにはどうすればよいですか?

分類Dev

VBAクラスモジュールのコレクションを正しく操作するにはどうすればよいですか?

分類Dev

Promiseの当時のアプリケーションのコードを正しく操作するにはどうすればよいですか?

分類Dev

codeigniterでセッションを使用して値を取得するにはどうすればよいですか?

分類Dev

PHPでセッションIDを取得して表示するにはどうすればよいですか?

分類Dev

Xubuntuのセッションリストからいくつかのセッションを削除するにはどうすればよいですか?

分類Dev

Xubuntuのセッションリストからいくつかのセッションを削除するにはどうすればよいですか?

分類Dev

Spring BootアプリケーションのメインメソッドでBeanを正しく初期化するにはどうすればよいですか?

分類Dev

正規表現でセクションを取得するにはどうすればよいですか?

分類Dev

正しく送信した後にJSONをリセットするにはどうすればよいですか?

分類Dev

mIRCメッセージで$ nickを正しく使用するにはどうすればよいですか?

分類Dev

シークレットbashセッションを開くにはどうすればよいですか?

分類Dev

cart_idが存在しなくなった場合、セッションを強制的に期限切れにするにはどうすればよいですか?

分類Dev

Map.valuesをコレクションではなくセットとして取得するにはどうすればよいですか?

分類Dev

印刷しないようにWordでいくつかのセクションを設定するにはどうすればよいですか?

分類Dev

休止状態のセッションを手動で開くにはどうすればよいですか?

分類Dev

カスタマイズされたセクションヘッダーに画像を配置して、両方の方向で正しく表示されるようにするにはどうすればよいですか?

分類Dev

セルフォーマットを正しく作成するにはどうすればよいですか?

分類Dev

テンソルセッションで複数の操作を1行で一緒に実行するにはどうすればよいですか?

分類Dev

Xubuntuセッションをリセットするにはどうすればよいですか?

分類Dev

NXセッションをリセットするにはどうすればよいですか?

分類Dev

セッションの重みを使用して新しいセッションの重みを初期化するにはどうすればよいですか?

分類Dev

非常に基本的なレベルでDockerを正しく操作するにはどうすればよいですか?

Related 関連記事

  1. 1

    セッション変数を正しく渡すにはどうすればよいですか?

  2. 2

    バックグラウンドセッション構成でiOS上でApolloGraphQLを正しく使用するにはどうすればよいですか?

  3. 3

    セッションに保存されたユーザー名を cookie と一緒に正しく設定するにはどうすればよいですか?

  4. 4

    OpenMPでセクションのロックを正しく使用するにはどうすればよいですか?

  5. 5

    このPowerShellWebリクエストでセッションを正しく保存するにはどうすればよいですか?

  6. 6

    startup-ipiを正しく使用してアプリケーションプロセッサを起動するにはどうすればよいですか?

  7. 7

    EJBステートレスセッションBeanをWebモジュールに正しく挿入するにはどうすればよいですか?

  8. 8

    VBAクラスモジュールのコレクションを正しく操作するにはどうすればよいですか?

  9. 9

    Promiseの当時のアプリケーションのコードを正しく操作するにはどうすればよいですか?

  10. 10

    codeigniterでセッションを使用して値を取得するにはどうすればよいですか?

  11. 11

    PHPでセッションIDを取得して表示するにはどうすればよいですか?

  12. 12

    Xubuntuのセッションリストからいくつかのセッションを削除するにはどうすればよいですか?

  13. 13

    Xubuntuのセッションリストからいくつかのセッションを削除するにはどうすればよいですか?

  14. 14

    Spring BootアプリケーションのメインメソッドでBeanを正しく初期化するにはどうすればよいですか?

  15. 15

    正規表現でセクションを取得するにはどうすればよいですか?

  16. 16

    正しく送信した後にJSONをリセットするにはどうすればよいですか?

  17. 17

    mIRCメッセージで$ nickを正しく使用するにはどうすればよいですか?

  18. 18

    シークレットbashセッションを開くにはどうすればよいですか?

  19. 19

    cart_idが存在しなくなった場合、セッションを強制的に期限切れにするにはどうすればよいですか?

  20. 20

    Map.valuesをコレクションではなくセットとして取得するにはどうすればよいですか?

  21. 21

    印刷しないようにWordでいくつかのセクションを設定するにはどうすればよいですか?

  22. 22

    休止状態のセッションを手動で開くにはどうすればよいですか?

  23. 23

    カスタマイズされたセクションヘッダーに画像を配置して、両方の方向で正しく表示されるようにするにはどうすればよいですか?

  24. 24

    セルフォーマットを正しく作成するにはどうすればよいですか?

  25. 25

    テンソルセッションで複数の操作を1行で一緒に実行するにはどうすればよいですか?

  26. 26

    Xubuntuセッションをリセットするにはどうすればよいですか?

  27. 27

    NXセッションをリセットするにはどうすればよいですか?

  28. 28

    セッションの重みを使用して新しいセッションの重みを初期化するにはどうすればよいですか?

  29. 29

    非常に基本的なレベルでDockerを正しく操作するにはどうすればよいですか?

ホットタグ

アーカイブ