diff --git a/query.go b/query.go index 7d202a8..0d6cab5 100644 --- a/query.go +++ b/query.go @@ -611,10 +611,18 @@ func (q *Query) Exec(result interface{}) { imodel, ok := cur.Interface().(IDocument) if ok { imodel.setExists(true) + imodel.SetSelf(imodel) doc.Elem().Index(i).Set(reflect.ValueOf(imodel)) } } } + + if idoc, ok := q.doc.(IDocument); ok { + idoc.SetSelf(result) + } + if rdoc, ok2 := result.(IDocument); ok2 { + rdoc.SetSelf(result) + } reflect.ValueOf(result).Elem().Set(reflect.ValueOf(q.doc).Elem()) q.done = true }