mirror of
https://github.com/mainnika/mongox-go-driver.git
synced 2026-07-03 17:22:33 +00:00
Add filters support for a saving
This commit is contained in:
@@ -12,13 +12,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// SaveOne saves a single source document to the database
|
// SaveOne saves a single source document to the database
|
||||||
func (d *Database) SaveOne(source interface{}) (err error) {
|
func (d *Database) SaveOne(source interface{}, filters ...interface{}) (err error) {
|
||||||
|
|
||||||
collection := d.GetCollectionOf(source)
|
collection := d.GetCollectionOf(source)
|
||||||
opts := options.FindOneAndReplace()
|
opts := options.FindOneAndReplace()
|
||||||
id := base.GetID(source)
|
id := base.GetID(source)
|
||||||
protected := base.GetProtection(source)
|
protected := base.GetProtection(source)
|
||||||
composed := query.Compose(bson.M{"_id": id})
|
composed := query.Compose(filters...)
|
||||||
|
|
||||||
|
composed.And(bson.M{"_id": id})
|
||||||
|
|
||||||
opts.SetUpsert(true)
|
opts.SetUpsert(true)
|
||||||
opts.SetReturnDocument(options.After)
|
opts.SetReturnDocument(options.After)
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ type Database interface {
|
|||||||
LoadArray(target interface{}, filters ...interface{}) (err error)
|
LoadArray(target interface{}, filters ...interface{}) (err error)
|
||||||
LoadOne(target interface{}, filters ...interface{}) (err error)
|
LoadOne(target interface{}, filters ...interface{}) (err error)
|
||||||
LoadStream(target interface{}, filters ...interface{}) (loader StreamLoader, err error)
|
LoadStream(target interface{}, filters ...interface{}) (loader StreamLoader, err error)
|
||||||
SaveOne(source interface{}) (err error)
|
SaveOne(source interface{}, filters ...interface{}) (err error)
|
||||||
IndexEnsure(cfg interface{}, document interface{}) (err error)
|
IndexEnsure(cfg interface{}, document interface{}) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user