mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-29 13:49:28 +08:00

* Add mongodb-writer Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add official mongodb driver Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Move Connect to main.go Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Remove bson.NewDoc and write msg directly in db Signed-off-by: Darko Draskovic <darko.draskovic@gmail.com> * Add MongoDB writer tests Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Update README.md Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Add mongodb services compose to addons dir Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Update docs Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Update docs and tests Refactor code. Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Expose MetricsMiddleware to align writers with other services Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Add logging middleware Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com> * Update load tests version Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
// Copyright (C) MongoDB, Inc. 2017-present.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
// not use this file except in compliance with the License. You may obtain
|
|
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
package mongo
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/mongodb/mongo-go-driver/bson"
|
|
)
|
|
|
|
// Cursor instances iterate a stream of documents. Each document is
|
|
// decoded into the result according to the rules of the bson package.
|
|
//
|
|
// A typical usage of the Cursor interface would be:
|
|
//
|
|
// var cur Cursor
|
|
// ctx := context.Background()
|
|
// defer cur.Close(ctx)
|
|
//
|
|
// for cur.Next(ctx) {
|
|
// elem := bson.NewDocument()
|
|
// if err := cur.Decode(elem); err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
//
|
|
// // do something with elem....
|
|
// }
|
|
//
|
|
// if err := cur.Err(); err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
//
|
|
type Cursor interface {
|
|
// NOTE: Whenever ops.Cursor changes, this must be changed to match it.
|
|
|
|
// Get the ID of the cursor.
|
|
ID() int64
|
|
|
|
// Get the next result from the cursor.
|
|
// Returns true if there were no errors and there is a next result.
|
|
Next(context.Context) bool
|
|
|
|
Decode(interface{}) error
|
|
|
|
DecodeBytes() (bson.Reader, error)
|
|
|
|
// Returns the error status of the cursor
|
|
Err() error
|
|
|
|
// Close the cursor.
|
|
Close(context.Context) error
|
|
}
|