filter_expression 中的属性在使用 moto 模拟 DynamoDB 时不起作用

Attribute between in filter_expression does not work when mocking DynamoDB using moto

我的测试设置如下所示:

    @mock_dynamodb2
    def test_name(self, dynamodb_connection):
        create_table(dynamodb_connection)
        table = dynamodb_connection.Table(os.environ["table"])
        table.put_item(Item=create_item())
        items = get_items()

存储了以下记录:

在模拟环境中本地调用以下查询时,结果为 returned:

get_table("table").query(
    IndexName="org-index",
    KeyConditionExpression=Key("org").eq(org),
    FilterExpression=Attr("status").gte(0) & Attr("status").lte(10)

AWS 生产中的相同代码将 return 0 个结果。将查询改为使用 between 属性 (Attr("status").between(0, 10)) 可以在云中的 DynamoDB 上工作,但 不会 在本地工作。我不想通过检查将测试与产品代码合并。有什么我忽略的吗?

between(0, 10) 存在错误,其中 0 被视为无值。 从 moto >= 2.2.14.dev25.

开始,这个问题刚刚得到修复