ngbatis icon indicating copy to clipboard operation
ngbatis copied to clipboard

TODOLIST

Open CorvusYe opened this issue 1 year ago • 4 comments

TODOLIST

  • [x] Change nebula-client dependence from 3.0.0 to 3.3.0

  • [x] Use nebula-client SessionPool

  • [ ] Move unit test from ngbatis-demo to ngbatis

  • [ ] Add batch interface in NebulaDaoBasic :

    • [ ] insertTripletBatch
    • [x] insertEdgeBatch
    • [ ] show metas
  • [ ] ResultSetUtil more column types support

    • [ ] Geography
    • [x] Duration
  • [x] Vertex multi labels support.

  • [ ] i18n: docs / comments / examples

  • [ ] Performance optimization of nGQL in NebulaDaoBasic

    • [ ] selectByIds

      MATCH(n) WHERE id(n) == <id> RETURN n
      
    • [ ] selectByIds

      MATCH(n: <tag_name>)
      WHERE id(n) in <id_list>
      RETURN n
      
    • [ ] selectBySelective

      MATCH(n: <tag_name>)
      WHERE 1 == 1 <and id(n) == <id>>
      [ and n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN n
      LIMIT 4000
      
    • [ ] selectBySelectiveStringLike

      MATCH(n: <tag_name>)
      WHERE 1 == 1 <and id(n) == <id>>
      [ and n.`<tag_name>`.<prop_name> =~ '.*<prop_value>.*' ]
      RETURN n
      LIMIT 4000
      
    • [ ] selectIdBySelective

      MATCH(n: <tag_name>)
      WHERE 1 == 1 <and id(n) == <id>>
      [ and n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN id(n)
      LIMIT 4000
      
    • [ ] selectIdBySelectiveStringLike

      MATCH(n: <tag_name>)
      WHERE 1 == 1 <and id(n) == <id>>
      [ and n.`<tag_name>`.<prop_name> =~ '.*<prop_value>.*' ]
      RETURN id(n)
      LIMIT 4000
      
    • [ ] selectByMap

      MATCH (n:`${ tagName }`)
      WHERE 1 == 1
      [ and n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN n
      LIMIT 4000
      
    • [ ] countByMap

      MATCH (n:`${ tagName }`)
      WHERE 1 == 1
      [ and n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN count(n)
      
    • [ ] selectPage

      MATCH (n:${ tag })
      WHERE
        [ [ and ] n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN n skip <start_row>limit <page_size>
      
    • [ ] countPage

      MATCH (n:`${ tagName }`)
      WHERE
        [ [ and ] n.`<tag_name>`.<prop_name> == <prop_value> ]
      RETURN n skip <start_row>limit <page_size>
      
    • [ ] insert

      INSERT VERTEX IF NOT EXISTS `<tag_name>` (
          <prop_name_group>
      )
      VALUES 
      <id> : ( <prop_value_group> )
      
    • [ ] insertBatch

      INSERT VERTEX IF NOT EXISTS `<tag_name>` (
          <prop_name_group>
      )
      VALUES 
      [<id> : ( <prop_value_group> ) [,] ]
      
    • [ ] updateById 、updateByIdSelective

      UPDATE  VERTEX ON `<tag_name>` <id>
      [
          SET
          [ <prop_group> ]
      ]
      YIELD <id> as <primary_key_name>, <prop_name_group>
      
    • [ ] updateByIdBatchSelective

      [
          UPDATE  VERTEX ON `<tag_name>` <id>
          SET
          [ <prop_name> = <prop_value> [,] ]
      ]
      
    • [ ] deleteWithEdgeById

      DELETE VERTEX <v_id> WITH EDGE
      
    • [ ] deleteById

      DELETE VERTEX <v_id>
      
    • [ ] insertEdge insertEdgeSelective

      INSERT EDGE `<edge_name>` (
           <prop_name_group>
      )
      VALUES <v_id_1>-> <v_id_2> @<ranking> :(
           <prop_value_group>
      );
      
    • [ ] upsertEdgeSelective

      UPSERT EDGE ON `<tag_name>`
      <v_id_1> -> <v_id_2> @[ranking]
      [ 
         SET
             [ `<prop_name>` = <prop_value> [, ] ]
      ]
      
    • [ ] existsEdge

      MATCH (n)-[r: <edge_name>]-(n2)
      WHERE id(n) == $p0 AND id(n2) == <v_id_2>
      RETURN count(*) > 0
      
    • [ ] listStartNodes

      MATCH (n: `<tag_name>`)-[r: `<edge_name>`]->(n2)
      WHERE id(n2) == <v_id_2>
      RETURN n
      
    • [ ] startNode

      MATCH (n: `<tag_name>`)-[r: `<edge_name>`]->(n2)
      WHERE id(n2) == <v_id_2>
      RETURN n
      LIMIT 1
      

CorvusYe avatar Nov 30 '22 15:11 CorvusYe