首先去官网下载好MongDB(这个是直接的下载连接哦~)后,直接打开 bin 文件目录里的 mongo.exe 就打开了 MongoDB。操作是在控制台中的。
具体操作,其实只要掌握一下这两句就可以了:
use 库名
代表使用这个库
db.集合名(相当于表).find()
查询这个集合中的数据
目录
1.初始化连接
var client *mongo.Client
func initDb() {
//设置客户端连接配置
uri := options.Client().ApplyURI("mongodb://localhost:27017")
//连接到MongoDB
connect, err3 := mongo.Connect(context.TODO(), uri)
if err3!=nil {
log.Fatal(err3)
}else {
fmt.Println(connect)
}
//检验连接
err2:= connect.Ping(context.TODO(), nil)
if err2!=nil {
log.Fatal(err2)
}else {
fmt.Println("连接成功!")
}
client=connect
}
2.插入单个数据
func mongoinsert() {
initDb()
s1:=Students{
Name: "yjy",
Age: 21,
}
//打开数据库并且打开Syudents的这个Collection集合
collection:= client.Database("golang_db").Collection("Students")
one, err := collection.InsertOne(context.TODO(), s1)
if err!=nil {
fmt.Println(err)
}else {
fmt.Println(one.InsertedID)
}
}
3.插入多个数据
func insertMany() {
initDb()
c:= client.Database("golang_db").Collection("Students")
s1:=Students{
Name: "kitty",
Age: 21,
}
s2:=Students{
Name: "zqy",
Age: 27,
}
stus:=[]interface{}{s1,s2}
many, err := c.InsertMany(context.TODO(), stus)
if err!=nil {
fmt.Println(err)
}else {
fmt.Println(many.InsertedIDs)
}
}
注意要用到 interface{} 切片插入
4.查询
func find() {
initDb()
defer client.Disconnect(context.TODO())
c:= client.Database("golang_db").Collection("Students")
cur, err := c.Find(context.TODO(), bson.D{{"name","zqy"}})
//bson.D{}里面可写可不写,写了就是条件,不写就是查找全部
if err!=nil {
log.Fatal(err)
}
defer cur.Close(context.TODO())
for cur.Next(context.TODO()) {
var result bson.D
cur.Decode(&result)
fmt.Println(result.Map())
fmt.Println(result)
}
}
5.更新
func mongoupdate() {
initDb()
c:= client.Database("golang_db").Collection("Students")
//将数据要改成
d := bson.D{{"$set", bson.D{{"name", "qxx"}, {"age", "28"}}}}
//要改的原数据
many, err := c.UpdateMany(context.TODO(), bson.D{{"name", "kitty"}}, d)
if err!=nil {
log.Fatal(err)
}
//打印改变了多少
fmt.Println(many.ModifiedCount)
}
6.删除
func del() {
initDb()
c:= client.Database("golang_db").Collection("Students")
many, err := c.DeleteMany(context.TODO(), bson.D{{"name", "qxx"}})
if err!=nil {
log.Fatal(err)
}
fmt.Println(many.DeletedCount)
}
其实大部分都是一样的,只是调用的方法不同罢了。