Maison base de données tutoriel mysql golang使用mgo连接MongoDB

golang使用mgo连接MongoDB

Jun 07, 2016 pm 03:29 PM
golang mongodb 使用 连接

github:https://github.com/ZhangzheBJUT/blog/blob/master/mgo.md 现在MongoDB官方还没有推出关于官方支持的golang的driver,推荐使用的是mgo. mgo的详细文档说明:http://godoc.org/labix.org/v2/mgo 下面是我开发中自己写的一个用mgo连接MongoDB数据库的使

github:https://github.com/ZhangzheBJUT/blog/blob/master/mgo.md

现在MongoDB官方还没有推出关于官方支持的golang的driver,推荐使用的是mgo. mgo的详细文档说明:http://godoc.org/labix.org/v2/mgo
下面是我开发中自己写的一个用mgo连接MongoDB数据库的使用实例。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

package main

 

import (

 

    "fmt"

    "labix.org/v2/mgo"

    "labix.org/v2/mgo/bson"

)

 

type Person struct {

    NAME  string

    PHONE string

}

type Men struct {

    Persons []Person

}

const = (

    URL = "192.168.2.175:27017"

)

func main() {

 

    session, err := mgo.Dial(URL)  //连接数据库

    if err != nil {

        panic(err)

    }

    defer session.Close()

    session.SetMode(mgo.Monotonic, true)

 

    db := session.DB("mydb")     //数据库名称

    collection := db.C("person") //如果该集合已经存在的话,则直接返回

 

 

    //*****集合中元素数目********

    countNum, err := collection.Count()

    if err != nil {

        panic(err)

    }

    fmt.Println("Things objects count: ", countNum)

 

    //*******插入元素*******

    temp := &Person{

        PHONE: "18811577546",

        NAME:  "zhangzheHero"

    }

        //一次可以插入多个对象 插入两个Person对象

    err = collection.Insert(&Person{"Ale", "+55 53 8116 9639"}, temp)

    if err != nil {

        panic(err)

    }

 

    //*****查询单条数据*******

    result := Person{}

    err = collection.Find(bson.M{"phone": "456"}).One(&result)

    fmt.Println("Phone:", result.NAME, result.PHONE)

 

    //*****查询多条数据*******

    var personAll Men  //存放结果

    iter := collection.Find(nil).Iter()

    for iter.Next(&result) {

        fmt.Printf("Result: %v\n", result.NAME)

        personAll.Persons = append(personAll.Persons, result)

    }

 

    //*******更新数据**********

    err = collection.Update(bson.M{"name": "ccc"}, bson.M{"$set": bson.M{"name": "ddd"}})

    err = collection.Update(bson.M{"name": "ddd"}, bson.M{"$set": bson.M{"phone": "12345678"}})

    err = collection.Update(bson.M{"name": "aaa"}, bson.M{"phone": "1245", "name": "bbb"})

 

    //******删除数据************

    _, err = collection.RemoveAll(bson.M{"name": "Ale”})

Copier après la connexion

1

}

Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Jun 06, 2024 am 11:21 AM

Comment configurer le pool de connexions pour la connexion à la base de données Golang ?

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Comment lire et écrire des fichiers en toute sécurité avec Golang ?

Similitudes et différences entre Golang et C++ Similitudes et différences entre Golang et C++ Jun 05, 2024 pm 06:12 PM

Similitudes et différences entre Golang et C++

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Jun 05, 2024 pm 06:59 PM

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ?

Qu'est-ce que Bitget Launchpool ? Comment utiliser Bitget Launchpool ? Qu'est-ce que Bitget Launchpool ? Comment utiliser Bitget Launchpool ? Jun 07, 2024 pm 12:06 PM

Qu'est-ce que Bitget Launchpool ? Comment utiliser Bitget Launchpool ?

Comment générer des éléments aléatoires à partir d'une liste dans Golang ? Comment générer des éléments aléatoires à partir d'une liste dans Golang ? Jun 05, 2024 pm 04:28 PM

Comment générer des éléments aléatoires à partir d'une liste dans Golang ?

Comparaison des avantages et des inconvénients du framework Golang Comparaison des avantages et des inconvénients du framework Golang Jun 05, 2024 pm 09:32 PM

Comparaison des avantages et des inconvénients du framework Golang

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Jun 05, 2024 pm 10:39 PM

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ?

See all articles