Provides types for go.mongodb.org/mongo-driver that can be used to construct and decode mongodb responses.
Note: Currently, only types needed for configuration of mongodb replicasets are provided.
Note: If you are looking for types for gopkg.in/mgo.v2, have a look at juju/replicaset.
Lets say you want to run the replSetGetStatus
command to check the primary of your replicaset. You can use replicaset.Status
with Decode
to parse the raw bson result.
import "github.com/romnn/mongotypes/replicaset"
var statusResult replicaset.Status
// adminDatabase is a connected mongo db admin database
if err := adminDatabase.RunCommand(context.TODO(), bson.D{{"replSetGetStatus", nil}}).Decode(&statusResult); err != nil {
log.Fatal(err)
}
primary := statusResult.Primary()
if primary == nil {
log.Fatal("The replicaset has no primary")
}
For more examples, see examples/
.
Before you get started, make sure you have installed the following tools::
$ python3 -m pip install -U cookiecutter>=1.4.0
$ python3 -m pip install pre-commit bump2version invoke ruamel.yaml halo
$ go get -u golang.org/x/tools/cmd/goimports
$ go get -u golang.org/x/lint/golint
$ go get -u github.com/fzipp/gocyclo
$ go get -u github.com/mitchellh/gox # if you want to test building on different architectures
Remember: To be able to excecute the tools downloaded with go get
,
make sure to include $GOPATH/bin
in your $PATH
.
If echo $GOPATH
does not give you a path make sure to run
(export GOPATH="$HOME/go"
to set it). In order for your changes to persist,
do not forget to add these to your shells .bashrc
.
With the tools in place, it is strongly advised to install the git commit hooks to make sure checks are passing in CI:
invoke install-hooks
You can check if all checks pass at any time:
invoke pre-commit
Note for Maintainers: After merging changes, tag your commits with a new version and push to GitHub to create a release:
bump2version (major | minor | patch)
git push --follow-tags
This project is still in the alpha stage and should not be considered production ready.