tywalch/electrodb

Empty Collection to work with "Service" construct

Max101 opened this issue · 1 comments

Describe the bug
If we specify and empty "" string as a collection name, the service collection does not work thus its not possible to query across all service entities with same PK . This should be possible given with a raw DynamoDb query it is.

ElectroDB Version
Specify the version of ElectroDB you are using
(e.g. 1.8.4)
latest

Entity/Service Definitions
Include your entity model (or a model that sufficiently recreates your issue) to help troubleshoot.

{
      model: {
        service: 'user',
        entity: 'UserFirstName',
        version: '1',
      },
      attributes: {
        user_id: {
          type: 'string',
          required: true,
        },
        first_name: {
          type: 'string',
          required: true,
        },
      },
      indexes: {
        byUserId: {
          collection: '', // Or no collection
          pk: {
            field: 'pk',
            composite: ['user_id'],
          },
          // pk: $user#user_id_
          sk: {
            field: 'sk',
            composite: [],
          },
        },
      },
    },
...

{
      model: {
        service: 'user',
        entity: 'UserLastName',
        version: '1',
      },
      attributes: {
        user_id: {
          type: 'string',
          required: true,
        },
        last_name: {
          type: 'string',
          required: true,
        },
      },
      indexes: {
        byUserId: {
          collection: '', // Or no collection
          pk: {
            field: 'pk',
            composite: ['user_id'],
          },
          // pk: $user#user_id_
          sk: {
            field: 'sk',
            composite: [],
          },
        },
      },
    },

Expected behavior
To be able to query even if there is no collections defined? The issue is, on an existing dataset, where one has not thought of the possibility of a collection being there in the future, its currently impossible to introduce one unless a new entity with a collection is defined and all the data is migrated to that collection.
However, this functionality is possible and easy to query with dynamoDb directly, so is there a way this can be done with ElectroDB or is the only way to have this, to create a collection?
Thanks!

Hi @Max101 👋

The issue is, on an existing dataset, where one has not thought of the possibility of a collection being there in the future, its currently impossible to introduce one unless a new entity with a collection is defined and all the data is migrated to that collection.

Firstly, I want to make sure I understand your case -- Is it correct to say you are hoping to use a Service to query across multiple entities without a collection defined on each entity? Would you be able to share more examples, and/or pseudo-code, to demonstrate how you'd expect to work with the library to achieve what you're discussing?