Cosmos DB - Gremlin API 对 .tail() 有奇怪的行为?

Cosmos DB - Gremlin API has weird behavior for .tail()?

我创建了一个在 'a' 上分区的空图,并使用以下内容播种:

g.addV('person').property('a','1').property('name','person 1').property('number',1)
g.addV('person').property('a','1').property('name','person 2').property('number',2)
g.addV('person').property('a','1').property('name','person 3').property('number',3)

g.V().order().by('number')
returns: person 1, person 2, person 3

g.V().order().by('number').tail(1)
returns: person 1

我希望 .tail() 到列表末尾 return

奇怪的是,当我 select 只是一个 属性 时,它就像我预期的那样工作:

g.V().order().by('number').properties('name')
returns: person 1, person 2, person 3

g.V().order().by('number').properties('name').tail(1)
returns: person 3

当我在 tinkerpop gremlin 控制台中尝试相同操作时,tail(1) return 是两个变体的最后一个条目..

我错过了什么吗?我很难相信这是一个真正的错误。

编辑: 我设法通过在 .tail() 之前执行 .fold().unfold() 使其工作。仍然不知道这里发生了什么..

我不确定那里的问题是什么,但似乎 TinkerGraph 显示了您想要的行为(显然这是预期的行为)时一定存在错误:

gremlin> g.V().order().by('number').tail(1)
==>v[8]
gremlin> g.V().order().by('number').tail(1).values('name')
==>person 3
gremlin> g.V().order().by('number').tail(1).valueMap(true)
==>[id:8,label:person,a:[1],number:[3],name:[person 3]]

fold().unfold() 有所不同(尝试很聪明)这一事实似乎表明某些 CosmosDB 优化行为不当。