diff --git a/djaosdb/base.py b/djaosdb/base.py index ebdcfeb70f283996d6a7abc971648436e95673a4..3cd97f13e60eccdeff001ba458f93c3d6816404d 100644 --- a/djaosdb/base.py +++ b/djaosdb/base.py @@ -62,7 +62,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'GenericObjectIdField': 'objectId', 'ObjectIdField': 'objectId', 'EmbeddedField': 'object', - 'ArrayField': caosdb.LIST, + 'ArrayField': None, } data_types_suffix = { diff --git a/djaosdb/caosdb_client.py b/djaosdb/caosdb_client.py index 789ce2170effacf158c16069dd262b172196b493..7360aafcabf4424d62c8ac0485b043ac68b882bf 100644 --- a/djaosdb/caosdb_client.py +++ b/djaosdb/caosdb_client.py @@ -1,5 +1,6 @@ import abc import time +import json from logging import getLogger from collections import defaultdict import caosdb @@ -213,9 +214,7 @@ class DefaultCaosDBClientDelegate: for p in e.get_properties(): row[p.name] = p.value if isinstance(p.value, list): - if len(p.value): - row[p.name] = p.value[0] - else: + if len(p.value) == 0: row[p.name] = None rows.append(row) return rows @@ -225,10 +224,7 @@ class DefaultCaosDBClientDelegate: for i in range(len(row)): val = row[i] if isinstance(val, list): - if len(val): - row[i] = val[0] - else: - row[i] = None + row[i] = json.dumps(val) return rows def find(self, record_type, limit=None, sort=None, skip=None, *args, **kwargs): diff --git a/djaosdb/sql2mongo/query.py b/djaosdb/sql2mongo/query.py index 5c3d0408000a873af9b637f0b6579b78427d252f..44eab4cf6270d8092d4ac72b89c8d6280f92546b 100644 --- a/djaosdb/sql2mongo/query.py +++ b/djaosdb/sql2mongo/query.py @@ -905,7 +905,7 @@ class Query: exe = SQLDecodeError( f'FAILED SQL: {self._sql}\n' f'Params: {self._params}\n' - f'Pymongo error: {e.details}\n' + f'CaosDBError: {e.msg}\n' f'Version: {djaosdb.__version__}' ) raise exe from e