diff --git a/datasources/connectors/csv.py b/datasources/connectors/csv.py
index 2aa9cb2a1c61ed7afd1b168975b1b5b0f9770104..4de3b4d67365309211a00397cafff205d4687648 100644
--- a/datasources/connectors/csv.py
+++ b/datasources/connectors/csv.py
@@ -162,10 +162,9 @@ class CsvToMongoConnector(InternalDataConnector, DataSetConnector):
         params = {key: _type_convert(val) for key, val in params.items()}
 
         with context_managers.switch_collection(CsvRow, self.location) as collection:
-            records = collection.objects.filter(**params)
+            records = collection.objects.filter(**params).exclude('_id')
 
-            # To get dictionary from MongoEngine records we need to go via JSON string
-            data = json.loads(records.exclude('_id').to_json())
+            data = list(records.as_pymongo())
 
             # Couldn't store field 'id' in document - recover it
             for item in data: