ホームページ バックエンド開発 Golang Go で MongoDB を使用する: 完全ガイド

Go で MongoDB を使用する: 完全ガイド

Jun 17, 2023 pm 06:14 PM
mongodb 言語を移動 ガイド

MongoDB は、Web アプリケーション、ビッグ データ、クラウド コンピューティングで広く使用されている、高性能のオープンソースのドキュメント ベースの NoSQL データベースです。 Go言語は高速で開発効率が高く、コードの保守性が高いプログラミング言語です。この記事では、Go 言語で MongoDB を使用する方法を完全に紹介します。

1. MongoDB のインストール

MongoDB を使用する前に、システムに MongoDB をインストールする必要があります。 Linux システムでは、次のコマンドを使用してインストールできます。

sudo apt-get update
sudo apt-get install mongodb
sudo systemctl start mongodb
ログイン後にコピー

Windows システムでは、MongoDB 公式 Web サイトにアクセスして、対応するバージョンのインストール パッケージをダウンロードし、プロンプトに従ってインストールできます。

2. MongoDB への接続

Go 言語で MongoDB を使用するには、サードパーティ パッケージ mgo をインストールする必要があります。次のコマンドでインストールできます:

go get gopkg.in/mgo.v2
ログイン後にコピー

次に、MongoDB に接続するための次のコードを記述します:

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
)

func main() {
    session, err := mgo.Dial("localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()

    collection := session.DB("test").C("users")
    fmt.Println(collection)
}
ログイン後にコピー

このコードは、MongoDB のテスト データベースに接続し、ユーザーを返します。コレクション。このうち、session はクライアントと MongoDB 間の接続を表す mgo.Session 型の変数です。 defer キーワードを使用すると、プログラムが終了する前に session.Close() が実行されるようになります。つまり、接続が閉じられます。最後に、fmt.Println() 関数を使用してコレクション値を出力し、データベース接続が成功したかどうかを確認します。

3. ドキュメントの挿入とクエリ

MongoDB では、ドキュメントはリレーショナル データベースの行と同様、データの基本単位です。 Go 言語は、mgo パッケージを通じてドキュメントの挿入とクエリを行うことができます。次のコードは、MongoDB の users コレクションにドキュメントを挿入できます。

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "time"
)

type User struct {
    Name     string `bson:"name"`
    Age      int    `bson:"age"`
    Email    string `bson:"email"`
    CreateAt time.Time `bson:"create_at"`
}

func main() {
    session, err := mgo.Dial("localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()

    collection := session.DB("test").C("users")

    user := User{
        Name:     "Alice",
        Age:      28,
        Email:    "alice@example.com",
        CreateAt: time.Now(),
    }
    err = collection.Insert(user)
    if err != nil {
        panic(err)
    }

    var result []User
    err = collection.Find(nil).Sort("-create_at").Limit(10).All(&result)
    if err != nil {
        panic(err)
    }
    fmt.Println(result)
}
ログイン後にコピー

その中で、最初にデータベース内のドキュメントを記述する User 構造を定義します。 main 関数では、まず User 型の変数 user を作成し、そのフィールドを初期化します。次に、 collection.Insert() メソッドを通じて、それを users コレクションに挿入します。最後に、collection.Find() メソッドを使用して、users コレクション内のすべてのドキュメントをクエリし、create_at フィールドに従って逆順に並べ替え、返される結果の数を 10 に制限し、最後にクエリ結果を出力しました。

4. ドキュメントの更新と削除

MongoDB では、Update メソッドを使用してドキュメントを更新し、Remove メソッドを使用してドキュメントを削除できます。次のコードは、users コレクション内の Alice という名前のドキュメントの年齢を 30 に更新してから削除できます:

user := User{
    Name:     "Alice",
    Age:      30,
    Email:    "alice@example.com",
    CreateAt: time.Now(),
}
err = collection.Update(bson.M{"name": "Alice"}, user)
if err != nil {
    panic(err)
}

err = collection.Remove(bson.M{"name": "Alice"})
if err != nil {
    panic(err)
}
ログイン後にコピー

このうち、bson.M は mgo パッケージの型であり、MongoDB のドキュメントの説明に使用されます。 。 Update メソッドと Remove メソッドでは、bson.M を使用して、更新されたドキュメントと削除されたドキュメントを指定できます。

5. 概要

この記事では、Go 言語で MongoDB を使用する方法を紹介します。まず MongoDB をインストールし、mgo パッケージを使用してデータベースに接続します。次に、mgo パッケージの Insert メソッドと Find メソッドを使用して、MongoDB にドキュメントを挿入し、クエリを実行します。最後に、Update メソッドと Remove メソッドを使用してドキュメントを更新および削除する方法について説明しました。この記事を学習することで、Go 言語で MongoDB を使用する基本的な方法をマスターできます。

以上がGo で MongoDB を使用する: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Apr 02, 2025 pm 04:54 PM

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Apr 02, 2025 pm 05:09 PM

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

GOプログラミングでは、MySQLとRedisの間で接続を正しく管理し、リソースをリリースする方法は? GOプログラミングでは、MySQLとRedisの間で接続を正しく管理し、リソースをリリースする方法は? Apr 02, 2025 pm 05:03 PM

GOプログラミングのリソース管理:MySQLとRedisは、特にデータベースとキャッシュを使用して、リソースを正しく管理する方法を学習するために接続およびリリースします...

MongoDBデータベースパスワードを表示するNAVICATの方法 MongoDBデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:39 PM

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

同じパッケージ内のさまざまなファイルで、LowercaseNamed関数を使用する方法は? 同じパッケージ内のさまざまなファイルで、LowercaseNamed関数を使用する方法は? Apr 02, 2025 pm 05:00 PM

同じパッケージ内の異なるファイルで小文字名を使用する方法は?ゴーに...

GOでは、効率的なキー値ペアメモリを構築する方法は? GOでは、効率的なキー値ペアメモリを構築する方法は? Apr 02, 2025 pm 05:06 PM

GO言語では、効率的なキー価値ペアメモリを達成する方法は、議論する価値のある質問です。多くの開発者は、これを実装するためにマップを使用することを考えるかもしれません...

GO言語では、工場モードを介して異なるインターフェイスの異なるパブリックメソッドパラメータータイプの問題を解決する方法は? GO言語では、工場モードを介して異なるインターフェイスの異なるパブリックメソッドパラメータータイプの問題を解決する方法は? Apr 02, 2025 pm 04:39 PM

GO言語では、共通のインターフェイスを定義し、インターフェイスによって実装されたメソッドを制約し、同時に異なるインターフェイスの同じ方法と異なるパラメータータイプを処理する方法...

GOでロックを使用するコードが時々パニックにつながるのはなぜですか? GOでロックを使用するコードが時々パニックにつながるのはなぜですか? Apr 02, 2025 pm 04:36 PM

ロックを使用すると、なぜパニックを引き起こすのですか?興味深い質問を見てみましょう。コードにロックが追加されたとしても、時々...

See all articles