mongodb

package
v0.0.0-...-c9dffe9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

README

MongoDB 工具包

因为之前比较好用的mgo库已经无人维护,所以我们使用了mongodb的官方sdk:MongoDB Go Driver(https://github.com/mongodb/mongo-go-driver) 但是因为这个SDK中的函数都较为底层不方便使用,我们自己在它的基础上又封装了一层。

当然,目前来看这个工具包只实现了一些简单的功能,如果有额外需求可以自行添加,下面简单介绍一下每个函数

  • GetMongodbClient:创建一个mongodb的client
  • KillMongodbClient:回收一个mongodb的client
  • CreateIndex:为collection创建一个index(非unique、目前只支持单个key)
  • CreateUniqueIndex:为collection创建一个 unique index(可以是多个key组成的对)
  • CountDocuments:在collection下对制定条件的document计数
  • InsertOneDocument:插入一个document
  • DeleteOneDocument:删除一个document
  • UpdateOneDocument:更新一个document,支持多个operator,但是每个operator只能出现一次
  • FindOneDocuemnt:找到一个document
  • FindDoucments:找到满足条件的多个document,目前只支持对单个key的比较
  • FindDocumentsByMultiKey:通过多个key找到满足条件的多个documents,目前只支持等于
  • UpdateOrInsertOneDocument:更新或者插入一个document,支持多个operator,但是每个operator只能出现一次

我们MongoDB的存储格式可以参考doc/developer的下的database-structure.md文件。

Documentation

Overview

Package mongodb provides mongodb.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountDocuments

func CountDocuments(client *mongo.Client, database string, collection string,
	key string, operators ...ComparisonQueryOperator) (int64, error)

func CreateIndex

func CreateIndex(client *mongo.Client, database string, collection string, key string) error

func CreateUniqueIndex

func CreateUniqueIndex(client *mongo.Client, database string, collection string, keys ...string) error

func DeleteOneDocument

func DeleteOneDocument(client *mongo.Client, database string,
	collection string, uniqueKey interface{}) error

func FindDocuments

func FindDocuments(client *mongo.Client, database string, collection string,
	key string, operators ...ComparisonQueryOperator) (*mongo.Cursor, error)

FindDocuments warning: only support single key

func FindDocumentsByMultiKey

func FindDocumentsByMultiKey(client *mongo.Client, database string, collection string,
	condition string, keys interface{}) (*mongo.Cursor, error)

func FindOneDocument

func FindOneDocument(client *mongo.Client, database string,
	collection string, uniqueKey interface{}) *mongo.SingleResult

func GetMongodbClient

func GetMongodbClient(mongodbURL string) (*mongo.Client, error)

func InsertOneDocument

func InsertOneDocument(client *mongo.Client, database string, collection string,
	document interface{}) (*mongo.InsertOneResult, error)

func InsertedIDToObjectID

func InsertedIDToObjectID(insertedID interface{}) (string, error)

func KillMongodbClient

func KillMongodbClient(client *mongo.Client)

func UpdateOneDocument

func UpdateOneDocument(client *mongo.Client, database string, collection string,
	uniqueKey interface{}, operations ...MongodbOperation) (int64, error)

UpdateOneDocument warning: one operator only appear once return modify_count

func UpdateOrInsertOneDocument

func UpdateOrInsertOneDocument(client *mongo.Client, database string, collection string,
	uniqueKey interface{}, operations ...MongodbOperation) error

UpdateOrInsertOneDocument warning: different operations cannot have same operator

Types

type ComparisonQueryOperator

type ComparisonQueryOperator struct {
	Operation string
	Value     interface{}
}

type MongodbOperation

type MongodbOperation struct {
	Operator string
	Document interface{}
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL