From 09fa64ab0e611771e0eb1c79248481980fe2e28f Mon Sep 17 00:00:00 2001 From: Nikita Tokarchuk Date: Mon, 13 Jul 2020 02:46:19 +0200 Subject: [PATCH] Return err if cannot decode array element --- mongox/database/loadarray.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mongox/database/loadarray.go b/mongox/database/loadarray.go index ba36549..0c702e3 100644 --- a/mongox/database/loadarray.go +++ b/mongox/database/loadarray.go @@ -51,17 +51,18 @@ func (d *Database) LoadArray(target interface{}, filters ...interface{}) (err er for i = 0; result.Next(d.Context()); { if targetSliceV.Len() == i { elem := reflect.New(targetSliceElemT.Elem()) - if err = result.Decode(elem.Interface()); err == nil { + err = result.Decode(elem.Interface()) + if err == nil { targetSliceV = reflect.Append(targetSliceV, elem) - } else { - continue } } else { elem := targetSliceV.Index(i).Interface() base.Reset(elem) - if err = result.Decode(elem); err != nil { - continue - } + err = result.Decode(elem) + } + if err != nil { + _ = result.Close(d.Context()) + return } i++