Tengo un problema muy extraño con AWS Neptune DB. Solo puedo cambiar la propiedad a un nuevo valor y no puedo usar ninguno de los nombres anteriores.
Estoy usando gremlin y node.js.
Eso suena tan raro, así que déjame agregar algo de código:
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection; const dc = new DriverRemoteConnection(process.env.DB_URL, { authenticator, connectOnStartup: false }); await dc.open(); const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote(dc); await gV().hasLabel('Wtf').drop().iterate(); await g.addV('Wtf').property('test', 'foo').iterate() await gV().hasLabel('Wtf').property('test', 'bar foo').iterate(); await gV().hasLabel('Wtf').property('test', 'foo').iterate(); const wtf = await gV().hasLabel('Wtf').elementMap().toList(); console.log(wtf);Así que creo que debería tener una respuesta como:
Map(3) { EnumValue { typeName: 'T', elementName: 'id' } => '7cbdd4d6-9d72-905f-c4b1-0ee9a31db29a', EnumValue { typeName: 'T', elementName: 'label' } => 'Wtf', 'test' => 'foo' }pero tengo:
Map(3) { EnumValue { typeName: 'T', elementName: 'id' } => '7cbdd4d6-9d72-905f-c4b1-0ee9a31db29a', EnumValue { typeName: 'T', elementName: 'label' } => 'Wtf', 'test' => 'bar foo' } Algo interesante, si estoy usando una sola palabra (sin espacios) en lugar de bar foo , tengo el resultado correcto. Y tengo el mismo problema cuando consulto la base de datos no una tras otra. ¿Alguien vio tal problema? sabes como resolverlo?
Neptune por defecto usa la cardinalidad Set. Cada vez que agrega un valor, está expandiendo ese Conjunto, ya que no está usando Cardinality.single explícitamente. Además, elementMap solo devolverá un elemento de una propiedad de cardinalidad Set. Para verlos todos, use valueMap en su lugar.