在Azure Functions绑定中,是否有任何方法可以根据相对于今天的日期查询Cosmos DB的文档?

时间:2018-09-05 23:05:40

标签: azure-functions azure-cosmosdb

我有一个带有Cosmos DB绑定的Azure函数。我想做的是让所有带有将来日期的文档。

类似的事情会起作用...

SqlQuery = "SELECT * FROM c WHERE c.Filter = {FilterTerm} AND c.SomeDate < '" + DateTime.UtcNow + "'")]

除了绑定存在于属性中这一事实意味着绑定必须是一个常量表达式。

据我所知,Cosmos DB中没有内置任何功能(例如GetDate() in T-SQL)。

因此,当前我正在查询批次并在内存中进行日期过滤。这行得通,但是它意味着比我想要的更多的数据库流量。

有什么办法可以更有效地做到这一点?

1 个答案:

答案 0 :(得分:1)

尽管Cosmos DB cosmos db中没有内置诸如GetDate()之类的功能,但是您可以使用UDF来实现类似的功能。

udf:

function convertTime(unix_timestamp){

      var date = new Date();
      return date;
    //   var year = date.getFullYear();
    //   var month = ("0"+(date.getMonth()+1)).substr(-2);
    //   var day = ("0"+date.getDate()).substr(-2);
    //   var hour = ("0"+date.getHours()).substr(-2);
    //   var minutes = ("0"+date.getMinutes()).substr(-2);
    //   var seconds = ("0"+date.getSeconds()).substr(-2);

    //   return year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds;
}

您可以转换任何想要与字段匹配的格式。

sql:

SELECT c.SomeDate < udf.nowDate() FROM c

任何担心,请随时让我知道。