MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Golang / MGO -- panika:brak osiągalnych serwerów

Uruchom następującą wersję opublikowanego kodu. Staraj się nie modyfikować kodu, a przynajmniej nie zmieniać pozycji numerów wierszy. W ten sposób, jeśli opublikujesz stos, liczby będą się zgadzać.

package main

import (
    "fmt"
    "time"
)

import (
    "labix.org/v2/mgo"
)

func connectToMongo() bool {
    ret := false
    fmt.Println("enter main - connecting to mongo")

    // tried doing this - doesn't work as intended
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Detected panic")
            var ok bool
            err, ok := r.(error)
            if !ok {
                fmt.Printf("pkg:  %v,  error: %s", r, err)
            }
        }
    }()

    maxWait := time.Duration(5 * time.Second)
    session, sessionErr := mgo.DialWithTimeout("localhost:27017", maxWait)
    if sessionErr == nil {
        session.SetMode(mgo.Monotonic, true)
        coll := session.DB("MyDB").C("MyCollection")
        if ( coll != nil ) {
            fmt.Println("Got a collection object")
            ret = true
        }
    } else { // never gets here
        fmt.Println("Unable to connect to local mongo instance!")
    }
    return ret
}

func main() {
    if ( connectToMongo() ) {
        fmt.Println("Connected")
    } else {
        fmt.Println("Not Connected")
    }
}

Gdy MongoDB działa, widzę:

enter main - connecting to mongo
Got a collection object
Connected

Gdy MongoDB nie działa, widzę:

enter main - connecting to mongo
Unable to connect to local mongo instance!
Not Connected

Jeśli nie widzisz tego samego zachowania, opublikuj dane wyjściowe, w tym panikę, którą widzisz.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konwertuj ciąg na MongoDB BsonDocument

  2. Optymalizacja - znajdź wszystkie pola w schemacie Mongoose MongoDB

  3. mongoDB:jak sprawdzić istnienie klucza dykt w zagnieżdżonym dyktacie?

  4. MongoClient nie działa z php

  5. Aktualizowanie pozycji w tablicy z unikalnym identyfikatorem