Search code examples
javascriptnode.jsgremlinamazon-neptune

Gremlin, javascript: where is the function "valueMap()" imported from?


I am using es6 on nodejs, and am trying to execute the project() step in a gremlin query.

As part of the projection, I want to extract the properties.

Using gremlin console I would use valueMap() to get the properties.

However, when I attempt this from javascript, I get the expected error "valueMap is not a function".

Question 1: where do I import this function from?

Question 2: where can I read about all of the various gremlin objects available for importing in javascript?

===========================

I am using Gremlin 3.3 connecting to an AWS Neptune instance.

Here is my gremlin code:

g.V('test-id')  
    .bothE()  
    .limit(10)  
    .project('id', 'properties', 'out', 'in')  
    .by(id)  
    .by(valueMap())  
    .by(outV().id())  
    .by(inV().id())  

Solution

  • valueMap(), outV() and similar traversals are spawned anonymously from a double underscore class - __ - so your code could be re-written as:

    const gremlin = require('gremlin');
    const __ = gremlin.process.statics;
    
    g.V('test-id')  
        .bothE()  
        .limit(10)  
        .project('id', 'properties', 'out', 'in')  
        .by(id)  
        .by(__.valueMap())  
        .by(__.outV().id())  
        .by(__.inV().id())