Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 是否在DynamoDB中设置结束日期参数为可选?_Typescript_Amazon Dynamodb_Dynamodb Queries - Fatal编程技术网

Typescript 是否在DynamoDB中设置结束日期参数为可选?

Typescript 是否在DynamoDB中设置结束日期参数为可选?,typescript,amazon-dynamodb,dynamodb-queries,Typescript,Amazon Dynamodb,Dynamodb Queries,目前,我们已将其设置为查询结果需要开始日期和结束日期,如下所示。 interface GetStuffIdArgs extends DdbPaginationQueryArgs { // Required query params startTime: string; endTime: string; 我尝试了一些我认为可以使参数成为可选参数的方法,但不确定查询本身将如何根据它进行更改 interface GetStuffIdArgs extends DdbPaginationQu

目前,我们已将其设置为查询结果需要开始日期和结束日期,如下所示。

interface GetStuffIdArgs extends DdbPaginationQueryArgs {
  // Required query params
  startTime: string;
  endTime: string;
我尝试了一些我认为可以使参数成为可选参数的方法,但不确定查询本身将如何根据它进行更改

interface GetStuffIdArgs extends DdbPaginationQueryArgs {
  // Required query params
  startTime: string;
  endTime: string | null;
如果这是正确的方法,我不太确定如何根据它来更改查询

interface GetStuffIdArgs extends DdbPaginationQueryArgs {
  // Required query params
  startTime: string;
  endTime: string | null;
我第一次看dynamodb。我很好奇如何使
:et
成为可选的,这样如果它为空,它将简单地查询从开始日期开始的所有内容?也许更好的问题是:是否可以将KeyConditionExpression设置为条件表达式,使其成为取决于参数的两件事之一?

如果数据是历史数据(总是在过去),您可以这样做:

const endTimeISO=endTime?新日期(endTime).toISOString():新日期().toISOString();
如果日期可能在将来,您只需要使用超出最大值的日期

const endTimeISO = endTime ? new Date(endTime).toISOString() : new Date(8640000000000000).toISOString();
(如上所述为JS的最大日期值)

  async getOtherStuff(id: string | number, args: GetOtherStuffIdArgs) {
    const { startTime, endTime, id, someType, order = "DESC" } = args;

    // convert times to ISO (utc 0);
    const startTimeISO = new Date(startTime).toISOString();
    const endTimeISO = endTime ? new Date(endTime).toISOString() : null;
const endTimeISO = endTime ? new Date(endTime).toISOString() : new Date(8640000000000000).toISOString();