安装MongoDB驱动程序



连接MongoDB


创建一个main.go文件 将以下包导入main.go文件中



连接MongoDB的URI格式为



单机版



副本集



分片集群



context.TODO()



列出所有数据库



在GO中使用BSON对象


Raw系列D


DMDAED


插入数据到MongoDB


插入单条文档



执行结果如下


640.png


同时插入多条文档



从MongDB中查询数据


查询单个文档


查询单个文档使用collection.FindOne()函数,需要一个filter文档和一个可以将结果解码为其值的指针



返回结果如下



查询多个文档


查询多个文档使用collection.Find()函数,这个函数会返回一个游标,可以通过他来迭代并解码文档,当迭代完成后,关闭游标


  • Find函数执行find命令并在集合中的匹配文档上返回Cursor。
  • filter参数必须是包含查询运算符的文档,并且可以用于选择结果中包括哪些文档。不能为零。空文档(例如bson.D {})应用于包含所有文档。
  • opts参数可用于指定操作的选项,例如我们可以设置只返回五条文档的限制(https://godoc.org/go.mongodb.org/mongo-driver/mongo/options#Find)。



返回结果如下



更新MongoDB文档


更新单个文档


更新单个文档使用collection.UpdateOne()函数,需要一个filter来匹配数据库中的文档,还需要使用一个update文档来更新操作


  • filter参数必须是包含查询运算符的文档,并且可以用于选择要更新的文档。不能为零。如果过滤器不匹配任何文档,则操作将成功,并且将返回MatchCount为0的UpdateResult。如果过滤器匹配多个文档,将从匹配的集合中选择一个,并且MatchedCount等于1。
  • update参数必须是包含更新运算符的文档(https://docs.mongodb.com/manual/reference/operator/update/),并且可以用于指定要对所选文档进行的修改。它不能为nil或为空。
  • opts参数可用于指定操作的选项。



返回结果如下



更新多个文档


更新多个文档使用collection.UpdateOne()函数,参数与collection.UpdateOne()函数相同



返回结果如下



删除MongoDB文档


collection.DeleteOne()collection.DeleteMany()bson.D{{}}collection. drop()



返回结果如下



获取MongoDB服务状态


上面我们介绍了对MongoDB的CRUD,其实还支持很多对mongoDB的操作,例如聚合、事物等,接下来介绍一下使用golang获取MongoDB服务状态,执行后会返回一个bson.Raw类型的数据