💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# MongoDB * * * * * --: 作者:Fuzz 时间:2018年8月15日 * * * * * ### 何为MongoDB? #### 简介 1.MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 2.在高负载的情况下,添加更多的节点,可以保证服务器性能。 3.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 4.MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象 **需要引入的包** go get gopkg.in/mgo.v2 ### 操作的结构体 type Xuesheng struct { Id_ bson.ObjectId `bson:"_id,omitempty"` Name string `bson:"name"` Phone string `bson:"phone"` Email string `bson:"email"` Sex string `bson:"sex"` } ### 引入包 import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) ### 连接操作 conn, err := mgo.Dial(url) //url=mongodb://user_name:password@192.16.8.1.1:27017 mongo链接 //链接一台 mongodb://user_name:password@192.16.8.1.1:27017 //链接mongodb集群 mongodb://user_name:password@192.16.8.1.1,192.16.8.1.2,192.16.8.1.3:27017 ### 切换数据库 c := conn.DB("数据库") ### 切换集合 c := db.DB("数据库").C("集合") ### 插入操作 生成mogonID bson.NewObjectId() test := Xuesheng{ Name: "Fuzz", Phone: "18888888888", Email: "18888888888@qq.com", Sex: "男", } err := c.Insert(&test) ### 查询操作 data := Xuesheng{} err = c.Find(bson.M{"name": "Fuzz"}).One(&data) //使用id查询 c.Find(bson.M{"_id":bson.ObjectIdHex("5b72cc3db96a6957bad97ddf")}).One(&x) c.FindId(bson.ObjectIdHex("5b72cc3db96a6957bad979a5")).One(&x) ### Id 查询条件 id := bson.ObjectIdHex("5a66a96306d2a40a8b884049") ### 更新操作 //更新一条 err := c.Update(bson.M{"email": "18888888888@qq.com"}, bson.M{"$set": bson.M{"name": "123"}}) //更新多条 num,err := c.UpdateAll(bson.M{"email": "18888888888@qq.com"}, bson.M{"$set": bson.M{"name": "123"}}) ### 删除操作 //删除一行 _, err := c.RemoveAll(bson.M{"phone": "18888888888"}) //删除多行 check,err := c.RemoveAll(bson.M{"user_id":1}) ### 注意采坑 https://studygolang.com/articles/4583