Go
Já tive linguagens,
de todas as cores ...
Então, por quê?
Nada de novo no Go
A soma das partes.
package main func main() { s := "Hello Go!" println(s) }
mgo
Go + MongoDB == <3
mgo entre 10 mais utilizadas
Características únicas
Vamos lá...
package main import "mgo" func main() { session, err := mgo.Mongo("db1.example.com") c := session.DB("mydb").C("mycollection") query := c.Find(bson.M{"name": "Jorge"}) ... }
package main import "mgo" func main() { ... session.SetMode(mgo.Monotonic, true) ... }
package main import "mgo" func main() { ... other := session.Copy() other.SetMode(mgo.Monotonic, true) f(other) ... }
package main import "mgo" func main() { ... session.SetBatch(200) session.SetPrefetch(0.25) ... }
package main import "mgo" func main() { ... err := iter.For(&result, func() os.Error { println(result.N) return nil }) ... }
type Person struct { Name string Age int Nerd bool } func main() { ... p := Person{} err := collection.Find(nil).One(&p) ... }
package main import "mgo" func main() { ... err := session.DB("mydb").Login("user", "pass") ... session.LogoutAll() ... }
func f(s mgo.Session, name string) { result := Person{} c := session.DB("company").C("people") err := c.Find(bson.M{"name": name}).One(&result) ... } func main() { ... go f(session, name1) go f(session, name2) ... }
package main import "mgo" func main() { ... db := session.DB("mydb") file, err := db.GridFS("fs").Create("my.iso") check(err) defer file.Close() iso, err := os.Open("cd.iso") check(err) defer iso.Close() err = ioutil.Copy(file, iso) ... }