From 03b83d3fb9d6349a843d6ab67354ec82424b5785 Mon Sep 17 00:00:00 2001
From: Sebastian Frank <sebastian@webmakers.de>
Date: Mon, 25 Jul 2022 10:24:56 +0200
Subject: [PATCH] nil lookup fix

---
 lookup.go | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/lookup.go b/lookup.go
index dfc5f4d..78f0843 100644
--- a/lookup.go
+++ b/lookup.go
@@ -156,10 +156,14 @@ func Lookup(db *mgo.Database, structField string, results interface{}, selector
 		object := objectIDs[objectID]
 
 		field := elV.FieldByName(structField)
-		if fieldIsPtr {
-			field.Set(reflect.ValueOf(object))
-		} else {
-			field.Set(reflect.ValueOf(object).Elem())
+		if object != nil && field.CanSet() {
+			objectVal := reflect.ValueOf(object)
+
+			if fieldIsPtr {
+				field.Set(objectVal)
+			} else {
+				field.Set(objectVal.Elem())
+			}
 		}
 
 	}