Git Product home page Git Product logo

Comments (6)

andrykonchin avatar andrykonchin commented on June 20, 2024 1

It seems QueryFilter/ScanFilter don't support conditions on collections like List and Map:

This parameter does not support attributes of type List or Map.
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html

But recently where was switched from them to the Expressions style, that does support such conditions.

So right now 'settings.color.not_null' => true should not work but it seems easy to support it. Will try to add it soon and release in the next release.

from dynamoid.

andrykonchin avatar andrykonchin commented on June 20, 2024 1

The work is in progress (#696) - I will come back to it soon.

from dynamoid.

andrykonchin avatar andrykonchin commented on June 20, 2024

I will check if it's possible to do it with QueryFilter/ScanFilter request parameters (that are deprecated now).

from dynamoid.

nbulaj avatar nbulaj commented on June 20, 2024

Sorry for bothering @andrykonchin , but maybe any update on this? Found filter_expression_convertor (

"attribute_exists (#{name_or_placeholder})"
) don't know if it's possible to reuse it for my case.

from dynamoid.

nbulaj avatar nbulaj commented on June 20, 2024

Hi @andrykonchin . I see new version is here, I checked https://github.com/Dynamoid/dynamoid/pull/655/files but not sure how correctly to pass params to the .where method to filter by the Map fields which has some key 😞 Can you please help with that? Maybe we also need some READE section with how-to section on how to use new expressions

I still see:

field :metadata, :map 

# ...

Model.where("metadata.scores.not_null": true ).count

Traceback (most recent call last):
        1: from (irb):9
Dynamoid::Errors::Error (Unsupported operator screen_scores in metadata.scores.not_null)

from dynamoid.

nbulaj avatar nbulaj commented on June 20, 2024

OK I see Dynamoid::Criteria::Chain doesn't allow it via def field_condition which does the following:

name, operator = key.to_s.split('.')

So for where("settings.color.not_null": true) it returns => ["metadata", "screen_scores", "not_null"]

from dynamoid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.