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


Related articles: