首页 > 解决方案 > 基于日期查询 Cosmos Db 的 Gremlin 语法

问题描述

您能否指导我如何编写一个只返回在特定日期之后开始的项目的 gremlin 查询?

我的第一个查询返回 program05 中的所有项目顶点:

gV('program05').has('partitionkey', 'program05').out('hasprojects')

我想对其进行过滤以仅返回在 '20/19/2018 4:37:12 PM' 之后开始的项目,程序顶点的属性为 startDate

我努力了 :

gV('program05').has('partitionkey', 'program05').out('hasprojects').has('startDate').has('startDate',gt, '20/19/2018 4:37:下午 12 点')

但我得到一个错误:无法在当前上下文中解析符号'lt'。我也尝试过其他选项,但没有运气

标签: databaseazure-cosmosdbgremlin

解决方案


字符串的谓词逻辑 ( javadoc ) 似乎基于字符串的 ASCII 值工作,因此您当前以文本格式存储日期将无法逐月工作。

我建议将其存储为纪元秒,然后使用以下查询来获取您想要的数据。

假设你的意思是日期2/19/2018 4:37:12 PM

g.V() 
 .has('partitionkey','program05')
 .out('hasprojects')
 .has('startDate',P.gt(1519058232))

推荐阅读