Presentando ArangoDB

ArangoDB es una base de datos de múltiples modelos con la capacidad de almacenar datos como gráficos, documentos y clave-valor.





Tomé material de un curso gratuito sobre Udemy y el curso Outline 

Vale la pena prestar atención al  centro de capacitación y los  muelles





Puede trabajar en la biblioteca HTTP API , frontalterminal y python





Concepto

ArangoDB almacena objetos en documentos json con soporte para la inversión de claves, por lo que un campo especial _key es  responsable .





Hay dos tipos de colecciones:





  • Estándar. Almacén de documentos Json, campos especiales _key, _rev, _id la clave se puede configurar usted mismo. Los dos últimos se crean automáticamente.





    • _key es la clave del objeto de la colección. IMPORTANTE: distingue entre mayúsculas y minúsculas





    • _rev - utilizado para algoritmos internos





    • _id : se utiliza para comunicarse con otras colecciones. Tiene el formato { nombre de la colección } / _ clave





  • Borde. Colecciones especiales que almacenan objetos de comunicación entre objetos de colecciones estándar. Tengo dos campos adicionales _ a, _from , que almacenan el _id de los objetos, que conecta el objeto de borde





.

.





CRUD

AQL





. , _key .









INSERT {key: value} INTO collection [RETURN NEW]
      
      



RETURN NEW







:





RETURN DOCUMENT(_id) –    _id 
RETURN DOCUMENT(collection_name, [_key, ...]) –       
      
      











UPDATE {_key: "value"} WITH {newVal: 1234} IN collection
      
      







REMOVE {_key: "value"} IN collection
      
      



FOR

: FOR variableName IN expression

















Update :





FOR doc in ["key1", "key2"]:
  UPDATE doc WITH {newVal: 1234} IN collection
      
      



. _key, _id, _to _from .





7 :





  • Primary – _key _id





  • Edge – _from _to





  • Hash –





  • Skiplist





  • Persistent





  • Geo





  • Fulltext





Selectivity,





: FILTER condition





.

, :





FOR flight IN flights 
  FILTER flight.type == "VIP" 
  RETURN flight
      
      



.







, .





FOR airport IN airports
  FILTER airport.city == "Dallas"
    FOR flight in flights 
      FILTER flight._to == airport._id
      RETURN {"airport": airport.name, "flight": flight.FlightNum}
      
      



:





COLLECT variableName = expression options
      
      



, :





FOR airport IN airports COLLECT state = airport.state RETURN state
      
      







FOR airport IN airports
  COLLECT state = airport.state WITH COUNT INTO total
  SORT total DESC
    RETURN {"state": state, "total":total}
      
      



(edge collections). _id, .

edge _to _from, _id , . json, , .





:





FOR vertex, edge, path IN 1..1 OUTBOUND _id GRAPH edge_collection RETURN path
FOR vertex, edge, path IN 1..1 OUTBOUND _id edge_collection RETURN path –  ,     GRAPH.    edge 
      
      



vertex – ,

edge –

path – :





IN , min..max

OUTBOUND/INBOUND/ANY . _from, _to .

_id id .

GRAPH edge ,





, - :





FOR airport in airports
  FILTER airport.city == "San Francisco"
    FOR v, e, p IN 1..1 OUTBOUND airport flights
    FILTER v._id == "airports/KOA"
    RETURN p
      
      



- :





FOR airport in airports
  FILTER airport.city == "San Francisco"
    FOR v, e, p IN 2..3 OUTBOUND airport flights
    FILTER v._id == "airports/KOA"
    RETURN p
      
      



, .





ArangoSearch, .

, ,





ArangoSearch : .





– analyzers, views links

Analyzers , . . .

Views  , /

Links  views . .





Motor de integración  : capa de provisión de datos.

La búsqueda  es un preprocesador, funciona sobre vistas, solo puede ver campos indexados, es decir, los que describimos en los enlaces.

El rango le  permite obtener el peso de los resultados, según la solicitud de búsqueda. También podemos establecer nuestros propios pesos para las piezas de búsqueda.





Un ejemplo de cómo encontrar la palabra "ninja" en la descripción de una película:





FOR doc in view
  SEARCH ANALYZER(d.description == "ninja", "text_en")
  RETURN doc
      
      






All Articles