Я использую гремлин с Космосом. Для простых запросов отлично работает следующее:
const gremlin = require("gremlin");
const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator(
`/dbs/graph/colls/collection`,
"PRIVATE KEY"
);
const client = new gremlin.driver.Client(
"wss://mygraph.gremlin.cosmosdb.azure.com:443/gremlin",
{
authenticator,
mimeType: "application/vnd.gremlin-v2.0+json",
traversalSource: "g"
}
);
client
.submit("g.V()")
.then(function(data) {
console.log(data.toArray());
client.close();
})
.catch(function(err) {
console.log(err);
client.close();
});
Однако, когда я пытаюсь передать параметр массива:
client
.submit("g.V().has('value', within(arrayParameter))", {
arrayParameter: []
})
Я получаю ответ:
ExceptionType : GraphMalformedException
ExceptionMessage :
Gremlin Malformed Request: Unknown GraphSON type encountered: g:List. Path: 'args.bindings.anArray', Line: 1, Position: 215.
GremlinRequestId : d3513f09-cf89-4d61-b2ac-31dbb60be085
Context : graphcompute
Scope : graphcomp-execquery
GraphInterOpStatusCode : MalformedRequest
HResult : 0x80131500
Это работало нормально с предыдущим клиентом v2. Cosmos не поддерживает режим байт-кода.