在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:mongodb/mongo-go-driver开源软件地址:https://github.com/mongodb/mongo-go-driver开源编程语言:Go 98.2%开源软件介绍:MongoDB Go DriverThe MongoDB supported driver for Go. Requirements
InstallationThe recommended way to get started using the MongoDB Go driver is by using Go modules to install the dependency in
your project. This can be done either by importing packages from go get go.mongodb.org/mongo-driver/mongo When using a version of Go that does not support modules, the driver can be installed using dep ensure -add "go.mongodb.org/mongo-driver/mongo" UsageTo get started with the driver, import the import (
"context"
"time"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017")) Make sure to defer a call to defer func() {
if err = client.Disconnect(ctx); err != nil {
panic(err)
}
}() For more advanced configuration and authentication, see the documentation for mongo.Connect. Calling ctx, cancel = context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
err = client.Ping(ctx, readpref.Primary()) To insert a document into a collection, first retrieve a collection := client.Database("testing").Collection("numbers") The ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
res, err := collection.InsertOne(ctx, bson.D{{"name", "pi"}, {"value", 3.14159}})
id := res.InsertedID To use Your import statement should now look like this: import (
"context"
"log"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
) Several query methods return a cursor, which can be used like this: ctx, cancel = context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
cur, err := collection.Find(ctx, bson.D{})
if err != nil { log.Fatal(err) }
defer cur.Close(ctx)
for cur.Next(ctx) {
var result bson.D
err := cur.Decode(&result)
if err != nil { log.Fatal(err) }
// do something with result....
}
if err := cur.Err(); err != nil {
log.Fatal(err)
} For methods that return a single item, a var result struct {
Value float64
}
filter := bson.D{{"name", "pi"}}
ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
err = collection.FindOne(ctx, filter).Decode(&result)
if err == mongo.ErrNoDocuments {
// Do something when no record was found
fmt.Println("record does not exist")
} else if err != nil {
log.Fatal(err)
}
// Do something with result... Additional examples and documentation can be found under the examples directory and on the MongoDB Documentation website. FeedbackFor help with the driver, please post in the MongoDB Community Forums. New features and bugs can be reported on jira: https://jira.mongodb.org/browse/GODRIVER Testing / DevelopmentThe driver tests can be run against several database configurations. The most simple configuration is a standalone mongod with no auth, no ssl, and no compression. To run these basic driver tests, make sure a standalone MongoDB server instance is running at localhost:27017. To run the tests, you can run Testing Different TopologiesTo test a replica set or sharded cluster, set
Testing Auth and TLSTo test authentication and TLS, first set up a MongoDB cluster with auth and TLS configured. Testing authentication requires a user with the
To run the tests with
For example:
Notes:
Testing CompressionThe MongoDB Go Driver supports wire protocol compression using Snappy, zLib, or zstd. To run tests with wire protocol compression, set
Ensure the ContributionCheck out the project page for tickets that need completing. See our contribution guidelines for details. Continuous IntegrationCommits to master are run automatically on evergreen. Thanks and Acknowledgement@ashleymcnamara - Mongo Gopher Artwork LicenseThe MongoDB Go Driver is licensed under the Apache License. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论