本文整理匯總了Golang中github.com/garyburd/go-mongo/mongo.Database類的典型用法代碼示例。如果您正苦於以下問題:Golang Database類的具體用法?Golang Database怎麽用?Golang Database使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Database類的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: getHw1
func getHw1(number int) string {
conn, err := mongo.Dial("localhost")
if err != nil {
fmt.Println("Error trying to connect to database")
}
defer conn.Close()
db := mongo.Database{conn, "m101", mongo.DefaultLastErrorCmd}
funnynumbers := db.C("funnynumbers")
cursor, err := funnynumbers.Find(nil).Limit(1).Skip(number).Sort(mongo.D{{"value", 1}}).Cursor()
if err != nil {
fmt.Println("Error trying to read collection")
}
defer cursor.Close()
var value string
if cursor.HasNext() {
var m map[string]interface{}
cursor.Next(&m)
value = fmt.Sprint(m["value"])
}
return value
}
示例2: main
func main() {
conn, err := mongo.Dial("localhost")
if err != nil {
fmt.Println("Error trying to connect to database")
os.Exit(1)
}
defer conn.Close()
db := mongo.Database{conn, "students", mongo.DefaultLastErrorCmd}
grades := db.C("grades")
cursor, err := grades.Find(mongo.M{"type": "homework"}).Sort(mongo.D{{"student_id", 1}, {"score", 1}}).Cursor()
if err != nil {
fmt.Println("Error trying to read collection")
os.Exit(1)
}
defer cursor.Close()
initialStudentId := -1
for cursor.HasNext() {
var m map[string]interface{}
cursor.Next(&m)
studentId := m["student_id"]
if initialStudentId != studentId {
evict(m, &grades)
initialStudentId = studentId.(int)
}
}
}
示例3: chapter3
func chapter3(conn mongo.Conn) {
log.Println("\n== CHAPTER 3 ==")
db := mongo.Database{conn, "learn", mongo.DefaultLastErrorCmd}
unicorns := db.C("unicorns")
log.Println("\n== Find names of all unicorns. ==\n")
cursor, err := unicorns.Find(nil).Fields(mongo.M{"name": 1}).Cursor()
if err != nil {
log.Fatal(err)
}
expectCount(cursor, 12)
log.Println("\n== Find all unicorns ordered by decreasing weight. ==\n")
cursor, err = unicorns.Find(nil).Sort(mongo.D{{"weight", -1}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectCount(cursor, 12)
log.Println("\n== Find all unicorns ordered by name and then vampire kills. ==\n")
cursor, err = unicorns.Find(nil).Sort(mongo.D{{"name", 1}, {"vampires", -1}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectCount(cursor, 12)
log.Println("\n== Find the 2nd and 3rd heaviest unicorns. ==\n")
cursor, err = unicorns.Find(nil).Sort(mongo.D{{"weight", -1}}).Limit(2).Skip(1).Cursor()
if err != nil {
log.Fatal(err)
}
expectCount(cursor, 2)
log.Println("\n== Count unicorns with more than 50 kills. ==\n")
n, err := unicorns.Find(mongo.M{"vampires": mongo.M{"$gt": 50}}).Count()
if err != nil {
log.Fatal(err)
}
if n != 6 {
log.Fatalf("Got count=%d, want 6", n)
}
}
示例4: ConnAndAuth
// A function that Dials and Authenticates
// into a provided data base
// accespts host,db,user,pass,log=Bool
// returns db,err
func ConnAndAuth(h, d, u, p string, l bool) mongo.Database {
conn, err := mongo.Dial(h)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
if l {
conn = mongo.NewLoggingConn(conn, log.New(os.Stdout, "", 0), "")
// clear log prefix for more readable output
log.SetFlags(0)
}
db := mongo.Database{conn, d, mongo.DefaultLastErrorCmd}
err = db.Authenticate(u, p)
if err != nil {
log.Fatal(err)
}
return db
}
示例5: NewFollowersDatabase
func NewFollowersDatabase() *FollowersDatabase {
conn, err := mongo.Dial("127.0.0.1:27017")
if err != nil {
log.Println("mongo Connect error:", err.Error())
panic("mongo conn err")
}
if verboseMongo {
conn = mongo.NewLoggingConn(conn, log.New(os.Stderr, "", 0), "")
}
db := mongo.Database{conn, DbName, mongo.DefaultLastErrorCmd}
return &FollowersDatabase{
userFollowers: db.C(USER_FOLLOWERS_TABLE),
userFollowersCounter: db.C(USER_FOLLOWERS_COUNTERS_TABLE),
followPending: db.C(FOLLOW_PENDING_TABLE),
previousUnfollows: db.C(PREVIOUS_UNFOLLOWS_TABLE),
}
}
示例6: main
func main() {
conn, err := mongo.Dial("localhost")
if err != nil {
fmt.Println("Error trying to connect to database")
os.Exit(1)
}
defer conn.Close()
db := mongo.Database{conn, "m101", mongo.DefaultLastErrorCmd}
funnynumbers := db.C("funnynumbers")
cursor, err := funnynumbers.Find(nil).Cursor()
if err != nil {
fmt.Println("Error trying to read collection")
os.Exit(1)
}
defer cursor.Close()
var magic int
for cursor.HasNext() {
var m map[string]interface{}
cursor.Next(&m)
value := int(m["value"].(float64))
if value%3 == 0 {
magic += int(m["value"].(float64))
}
}
fmt.Println("The answer to Homework One, Problem 2 is", magic)
}
示例7: main
func main() {
// create file
file, err := os.Create("items.csv")
if err != nil {
panic(err)
}
defer file.Close()
// Create CSV Writer
writer := csv.NewWriter(file)
// Connect to MongoDB
conn, err := mongo.Dial("dharma.mongohq.com:10053")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
// Wrap the connection with a logger so that we can view traffic
// to and from the mongoDB server
// conn = mongo.NewLoggingConn(conn, log.New(os.Stdout, "", 0), "")
// clear log prefix for more readable output
log.SetFlags(0)
// Create db object
db := mongo.Database{conn, "nix_stagingv3", mongo.DefaultLastErrorCmd}
err = db.Authenticate("sync", "vbnvbn45")
if err != nil {
log.Fatal(err)
}
// Create collections object
items := db.C("items")
// Auto Detect Headerline
var m mongo.M
err = items.Find(nil).One(&m)
if err != nil && err != mongo.Done {
log.Fatal(err)
}
// Create a cursor using Find query
cursor, err := items.Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
defer cursor.Close()
// Iterate over all items in a collection
for cursor.HasNext() {
var m mongo.M
err := cursor.Next(&m)
if err != nil {
log.Fatal(err)
}
var record []string
var header []string
for k, _ := range m {
s := fmt.Sprint(v)
record = append(record, s)
}
writer.Write(record)
writer.Flush()
}
}
示例8: main
func main() {
// *host
host := flag.String("host", "localhost:27017", "The host and port of the mongod instance you wish to connect to")
dbname := flag.String("db", "testDB", "The output file that will be written to")
user := flag.String("user", "", "The user you wish to authenticate with")
pass := flag.String("pass", "", "The pass you wish to authenticate with")
col := flag.String("col", "testCol", "The collection you wish to output")
// fieldsFile := flag.String("fieldsFile", "~/", "The a file containing field names")
// query := flag.String("query", "collection.csv", "The output file that will be written to")
out := flag.String("out", "collection.csv", "The output file that will be written to")
flag.Parse()
// After cmd flag parse
file, err := os.Create(*out)
if err != nil {
log.Fatal(err)
}
defer file.Close()
// Create Writer
writer := csv.NewWriter(file)
// Connect to MongoDB
conn, err := mongo.Dial(*host)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
// select DB
db := mongo.Database{conn, *dbname, mongo.DefaultLastErrorCmd}
// test for user and pass vars
err = db.Authenticate(*user, *pass)
if err != nil {
log.Fatal(err)
}
// select Collection
collection := db.C(*col)
// Auto Detect Headerline
var h mongo.M
err = collection.Find(nil).One(&h)
if err != nil {
log.Fatal(err)
}
var headers []string
for k, _ := range h {
headers = append(headers, fmt.Sprint(k))
}
// Default sort the headers
// Otherwise accessing the headers will be
// different each time.
sort.Strings(headers)
// write headers to file
writer.Write(headers)
writer.Flush()
// log.Print(headers)
// Create a cursor using Find query
cursor, err := collection.Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
defer cursor.Close()
// Iterate over all items in a collection
for cursor.HasNext() {
var m mongo.M
err := cursor.Next(&m)
if err != nil {
log.Fatal(err)
}
var record []string
for _, header := range headers {
record = append(record, fmt.Sprint(m[header]))
}
writer.Write(record)
writer.Flush()
}
}
示例9: reset
// reset cleans up after previous runs of this applications.
func reset(conn mongo.Conn) {
log.Println("\n== Clear documents and indexes created by previous run. ==\n")
db := mongo.Database{conn, "learn", mongo.DefaultLastErrorCmd}
db.Run(mongo.D{{"profile", 0}}, nil)
db.C("unicorns").Remove(nil)
db.C("hits").Remove(nil)
db.Run(mongo.D{{"dropIndexes", "unicorns"}, {"index", "*"}}, nil)
db.Run(mongo.D{{"dropIndexes", "hits"}, {"index", "*"}}, nil)
}
示例10: chapter7
func chapter7(conn mongo.Conn) {
log.Println("\n== CHAPTER 7 ==")
db := mongo.Database{conn, "learn", mongo.DefaultLastErrorCmd}
unicorns := db.C("unicorns")
log.Println("\n== Create index on name. ==\n")
err := unicorns.CreateIndex(mongo.D{{"name", 1}}, nil)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Drop index on name. ==\n")
err = db.Run(mongo.D{
{"dropIndexes", unicorns.Name()},
{"index", mongo.IndexName(mongo.D{{"name", 1}})},
}, nil)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Create unique index on name. ==\n")
err = unicorns.CreateIndex(mongo.D{{"name", 1}}, &mongo.IndexOptions{Unique: true})
if err != nil {
log.Fatal(err)
}
log.Println("\n== Create compound index on name ascending and kills descending. ==\n")
err = unicorns.CreateIndex(mongo.D{{"name", 1}, {"vampires", -1}}, nil)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Explain query. ==\n")
var m mongo.M
err = unicorns.Find(nil).Explain(&m)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Explain query on name. ==\n")
m = nil
err = unicorns.Find(mongo.M{"name": "Pilot"}).Explain(&m)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Enable profiling. ==\n")
err = db.Run(mongo.D{{"profile", 2}}, nil)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Get profile data for query. ==\n")
cursor, err := unicorns.Find(mongo.M{"weight": mongo.M{"$gt": 600}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "Unicrom", "Ayna", "Kenny", "Leia", "Pilot", "Dunx")
cursor, err = db.C("system.profile").Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
for cursor.HasNext() {
var m mongo.M
err := cursor.Next(&m)
if err != nil {
log.Fatal(err)
}
}
cursor.Close()
log.Println("\n== Profile queries that take longer than 100 ms. ==\n")
err = db.Run(mongo.D{{"profile", 2}, {"slowms", 100}}, nil)
if err != nil {
log.Fatal(err)
}
}
示例11: chapter1
func chapter1(conn mongo.Conn) {
log.Println("\n== CHAPTER 1 ==")
// Create a database object.
db := mongo.Database{conn, "learn", mongo.DefaultLastErrorCmd}
// Create a collection object object for the "unicorns" collection.
unicorns := db.C("unicorns")
log.Println("\n== Add first unicorn. ==\n")
err := unicorns.Insert(mongo.M{"name": "Aurora", "gender": "f", "weight": 450})
if err != nil {
log.Fatal(err)
}
log.Println("\n== Find all unicorns. ==\n")
cursor, err := unicorns.Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
log.Println("\n== Iterate over the documents in the result. ==\n")
for cursor.HasNext() {
var m mongo.M
err := cursor.Next(&m)
if err != nil {
log.Fatal(err)
}
}
log.Println("\n== Show index created on _id. ==\n")
si := db.C("system.indexes")
cursor, err = si.Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "_id_")
log.Println("\n== Insert a totally different document in unicorns. ==\n")
err = unicorns.Insert(mongo.M{"name": "Leto", "gender": "m", "home": "Arrakeen", "worm": false})
if err != nil {
log.Fatal(err)
}
cursor, err = unicorns.Find(nil).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "Aurora", "Leto")
log.Println("\n== Remove what we added to the database so far. ==\n")
err = unicorns.Remove(nil)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Add sample data for selector examples. ==\n")
err = unicorns.Insert(chapter1SampleData...)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Find all male unicorns that weight 700 pounds. ==\n")
cursor, err = unicorns.Find(mongo.M{"gender": "m", "weight": mongo.M{"$gt": 700}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "Unicrom", "Dunx")
log.Println("\n== A similar query for demonstration purposes. ==\n")
cursor, err = unicorns.Find(mongo.M{"gender": mongo.M{"$ne": "f"}, "weight": mongo.M{"$gte": 701}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "Unicrom", "Dunx")
log.Println("\n== Find unicorns without the vampires field. ==\n")
cursor, err = unicorns.Find(mongo.M{"vampires": mongo.M{"$exists": false}}).Cursor()
if err != nil {
log.Fatal(err)
}
expectFieldValues(cursor, "name", "Nimue")
log.Println("\n== Find female unicorns which either love apples or oranges or weigh less than 500 lbs. ==\n")
cursor, err = unicorns.Find(mongo.M{
"gender": "f",
"$or": mongo.A{
mongo.M{"loves": "apple"},
//.........這裏部分代碼省略.........
示例12: chapter2
func chapter2(conn mongo.Conn) {
log.Println("\n== CHAPTER 2 ==")
db := mongo.Database{conn, "learn", mongo.DefaultLastErrorCmd}
unicorns := db.C("unicorns")
hits := db.C("hits")
log.Println("\n== Change Roooooodles' weight. ==\n")
err := unicorns.Update(mongo.M{"name": "Roooooodles"}, mongo.M{"weight": 590})
if err != nil {
log.Fatal(err)
}
log.Println("\n== Update replaced the document. ==\n")
var m mongo.M
err = unicorns.Find(mongo.M{"name": "Roooooodles"}).One(&m)
if err != nil && err != mongo.Done {
log.Fatal(err)
}
log.Println("\n== Reset the lost fields using the set operator. ==\n")
err = unicorns.Update(mongo.M{"weight": 590}, mongo.M{"$set": mongo.M{
"name": "Roooooodles",
"dob": dateTime(1979, 7, 18, 18, 44),
"loves": mongo.A{"apple"},
"gender": "m",
"vampires": 99}})
if err != nil {
log.Fatal(err)
}
m = nil
err = unicorns.Find(mongo.M{"name": "Roooooodles"}).One(&m)
if err != nil {
log.Fatal(err)
}
if m["name"] != "Roooooodles" {
log.Fatal("Did not find Roooooodles")
}
log.Println("\n== Update weight the correct way. ==\n")
err = unicorns.Update(mongo.M{"name": "Roooooodles"}, mongo.M{"$set": mongo.M{"weight": 590}})
if err != nil {
log.Fatal(err)
}
m = nil
err = unicorns.Find(mongo.M{"name": "Roooooodles"}).One(&m)
if err != nil {
log.Fatal(err)
}
if m["weight"] != 590 {
log.Fatalf("Expected Roooooodles' weight=590, got %d\n", m["weight"])
}
log.Println("\n== Correct the kill count for Pilot. ==\n")
err = unicorns.Update(mongo.M{"name": "Pilot"}, mongo.M{"$inc": mongo.M{"vampires": -2}})
if err != nil {
log.Fatal(err)
}
m = nil
err = unicorns.Find(mongo.M{"name": "Pilot"}).One(&m)
if err != nil {
log.Fatal(err)
}
if m["vampires"] != 52 {
log.Fatalf("Expected Pilot's vampires=52, got %d\n", m["vampires"])
}
log.Println("\n== Aurora loves sugar. ==\n")
err = unicorns.Update(mongo.M{"name": "Aurora"}, mongo.M{"$push": mongo.M{"loves": "sugar"}})
if err != nil {
log.Fatal(err)
}
m = nil
err = unicorns.Find(mongo.M{"name": "Aurora"}).One(&m)
if err != nil {
log.Fatal(err)
}
log.Println("\n== Updating a missing document does nothing. ==\n")
err = hits.Update(mongo.M{"page": "unicorns"}, mongo.M{"$inc": mongo.M{"hits": 1}})
if err == nil || err != mongo.ErrNotFound {
log.Fatal(err)
}
err = hits.Find(mongo.M{"page": "unicorns"}).One(&m)
//.........這裏部分代碼省略.........