You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
617 B
25 lines
617 B
package database
|
|
|
|
import (
|
|
"github.com/mainnika/mongox-go-driver/v2/mongox"
|
|
"github.com/mainnika/mongox-go-driver/v2/mongox/query"
|
|
)
|
|
|
|
// LoadStream function loads documents one by one into a target channel
|
|
func (d *Database) LoadStream(target interface{}, filters ...interface{}) (loader mongox.StreamLoader, err error) {
|
|
composed, err := query.Compose(filters...)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
ctx := query.WithContext(d.Context(), composed)
|
|
|
|
cur, err := d.createCursor(target, composed)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
loader = &StreamLoader{cur: cur, ctx: ctx, query: composed}
|
|
|
|
return loader, nil
|
|
}
|
|
|