sql >> データベース >  >> NoSQL >> MongoDB

mongodb3.6の新しいURLを使用してgolangから接続する方法

    コードが開始されたのがわかりましたが、何もわかりませんでした

    ご存知のとおり、これはDialInfoのデフォルトのタイムアウトがゼロであるためです。呼び出しは、接続が確立されるのを待って永久にブロックされます。次のコマンドでタイムアウトを指定することもできます:

    dialInfo.Timeout = time.Duration(30)
    session, err := mgo.DialWithInfo(dialInfo)
    

    現在、到達可能なサーバーがありません

    これは、globalsign/mgoが現在SRV接続文字列URIをまだサポートしていないためです。問題112を参照してください。非srv接続URI形式(MongoDB v3.4)を使用できます。関連する質問StackOverflow:41173720を参照してください。

    SRV接続URIを使用して接続する場合は、代わりにmongo-go-driverを使用できます(例:

    )。
    mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"
    
    client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
    if err != nil {
        log.Fatal(err)
    }
    ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
    defer cancel()
    err = client.Connect(ctx)
    defer client.Disconnect(ctx)
    
    if err != nil {
        log.Fatal(err)
    }
    database := client.Database("go")
    collection := database.Collection("atlas")
    

    上記の例は、現在のバージョンv1.0.0と互換性があります




    1. Node.js/ExpressとMongooseを使用してMongoDBに画像を保存します

    2. SpringBootはMysqlとMongoDbを接続します

    3. MongoDBのパフォーマンス:セカンダリでのMongoDBアグリゲーションの実行

    4. MongoDB検索を使用してオートコンプリート機能を実装する