Невозможно предоставить массивы в качестве параметров в космосе с помощью gremlin: неверный запрос Gremlin: обнаружен неизвестный тип GraphSON - PullRequest
0 голосов
/ 09 июля 2019

Я использую гремлин с Космосом. Для простых запросов отлично работает следующее:

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 не поддерживает режим байт-кода.

...