mongodb official golang Driver basic usage tutorial shared
- 2020-12-05 17:26:41
- OfStack
preface
mongo database has two commonly used drivers in nodejs platform, mongodb and mongoose. The mongodb interface is very close to the native operation mode of mongo database. It is the preferred mongo database connection driver for demo code like helloworld, so it becomes the first mongo database driver for most nodejs beginners. While learning mongo connections, beginners are sadly lost to the illustrative database habits of helloword.
This article is mainly about the mongodb official golang driver use related content, the following is not enough to say, let's take a look at the detailed introduction
The tutorial is as follows:
The import
go get github.com/mongodb/mongo-go-driver/mongo
Link to mongo service
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
Determine if the service is available
if err = client.Ping(getContext(), readpref.Primary()); err != nil {
checkErr(err)
}
Select database and collection
collection = client.Database("testing_base").Collection("howie")
Delete this collection
collection.Drop(getContext())
Insert 1 piece of data
if insertOneRes, err = collection.InsertOne(getContext(), howieArray[0]); err != nil {
checkErr(err)
}
fmt.Printf("InsertOne Inserted message ID:%v\n", insertOneRes.InsertedID)
Batch insert data
if insertManyRes, err = collection.InsertMany(getContext(), howieArray); err != nil {
checkErr(err)
}
fmt.Printf("InsertMany Inserted message ID:%v\n", insertManyRes.InsertedIDs)
Query a single piece of data
if err = collection.FindOne(getContext(), bson.D{{"name", "howie_2"}, {"age", 11}}).Decode(&howie); err != nil {
checkErr(err)
}
fmt.Printf("FindOne The data queried :%v\n", howie)
Delete a single piece of data after querying it
if err = collection.FindOneAndDelete(getContext(), bson.D{{"name", "howie_3"}}).Decode(&howie); err != nil {
checkErr(err)
}
fmt.Printf("FindOneAndDelete The data queried :%v\n", howie)
Modify a single piece of data after consulting it
if err = collection.FindOneAndUpdate(getContext(), bson.D{{"name", "howie_4"}}, bson.M{"$set": bson.M{"name": " I need to modify this data "}}).Decode(&howie); err != nil {
checkErr(err)
}
fmt.Printf("FindOneAndUpdate The data queried :%v\n", howie)
After querying a single piece of data, replace the data (all previous data are cleared)
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
0
Query multiple data at a time (query createtime
>
=3, limit to 2,createtime from large to small sort of data)
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
1
Query the collection for how much data there is
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
2
Query how much data is in the collection (query createtime
>
= data of 3)
if size, err = collection.Count(getContext(), bson.M{"createtime": bson.M{"$gte": 3}}); err != nil {
checkErr(err)
}
fmt.Printf("Count How many pieces of data are there :%d\n", size)
Modify 1 piece of data
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
4
Modify multiple data
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
5
Delete 1 piece of data
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
6
Delete multiple data
if client, err = mongo.Connect(getContext(), url); err != nil {
checkErr(err)
}
7
Click here for the full demo code
To see mongo BSON for more details, click here
conclusion