Pick a topic — languages & databases — 100+ questions and answers in the center column.
ArangoDB
Documents, graphs, AQL, ArangoSearch, cluster.
102 questions
Question 1
Multi-model database: documents, key/value, and graph in one engine with a unified query language (AQL). Single storage core with optional graph algorithms and Foxx microservices.
Example code
RETURN "hello"Question 2
ArangoDB Query Language—SQL-like but document/graph native; no DDL inside AQL for all admin tasks—some operations via HTTP API/UI.
Example code
FOR d IN users FILTER d.active RETURN dQuestion 3
JSON documents in collections—like MongoDB but with first-class edges for graphs.
Example code
INSERT { name: "Ada" } INTO usersQuestion 4
Document collections store vertices or general docs; edge collections store directed edges with _from/_to referencing document IDs.
Example code
DOCUMENT("users/key1")Question 5
_key unique per collection; _id collection/_key globally; _rev MVCC revision for optimistic concurrency.
Example code
FOR v,e,p IN 1..3 OUTBOUND 'users/alice' edges RETURN pQuestion 6
Named graph ties vertex collections and edge collections—constrains which edge types connect which vertices.
Example code
SHORTEST_PATH(@start, @end, OUTBOUND edges)Question 7
Graph traversal directions in AQL—OUTBOUND, INBOUND, ANY with variable depth min..max.
Example code
db.users.ensureIndex({ type: "persistent", fields: ["email"] })Question 8
SHORTEST_PATH function—weights optional; mind performance on dense graphs.
Example code
FOR d IN v_view SEARCH ANALYZER(PHRASE(d.title, "foo"), "text_en") RETURN dQuestion 9
Primary, edge (_from/_to), hash, skiplist, fulltext, geo, TTL—ArangoSearch views for advanced text/analytics.
Example code
RETURN DOCUMENT("c/1")._revQuestion 10
Inverted index views with analyzers—ranking, fuzzy, phrase search across collections.
Example code
db._query(`FOR x IN coll FILTER x._key == @k RETURN x`, { k: "a" })Question 11
Multi-document/edge ACID in single server and cluster (with rules)—prefer smaller transactions.
Example code
// SmartGraphs / OneShard: cluster featuresQuestion 12
Collections shard by shard key—default _key distribution; graphs need smart graph considerations.
Example code
// agency + coordinatorsQuestion 13
Enterprise feature co-locating related graph data on same DB server—faster traversals at scale.
Example code
// Foxx: mount serviceQuestion 14
Co-locate entire graph or collection group—simpler stronger locality.
Example code
RETURN PARSE_JSON('{"a":1}')Question 15
Leader/follower asynchronous replication—failover with agency consensus in cluster.
Example code
RETURN HTTP_GET("http://127.0.0.1:8529/_api/version")Question 16
Cluster agents maintain config; coordinators parse AQL and fan out to DB servers.
Example code
FOR u IN users FILTER u.age > @min RETURN uQuestion 17
JavaScript services running inside DB process—low-latency data proximity; package and version carefully.
Example code
LET x = (FOR y IN t RETURN y)Question 18
Binary serialization format—faster than JSON for internal storage and wire in drivers.
Example code
FOR d IN c FILTER d.a == 1 SORT d.b LIMIT 10 RETURN dQuestion 19
Every operation accessible via REST—curl friendly; drivers wrap same API.
Example code
FOR d IN c COLLECT g = d.g INTO groups RETURN { g, n: LENGTH(groups) }Question 20
Parameterized queries prevent injection—always bind user input.
Example code
UPSERT { _key: "k" } INSERT { _key: "k", n: 1 } UPDATE { n: OLD.n + 1 } IN cQuestion 21
Subexpressions and subqueries—scope rules simpler than some SQL nested queries.
Example code
FOR v,e IN 1..5 OUTBOUND 'users/1' edges OPTIONS { bfs: true, uniqueVertices: "global" } RETURN eQuestion 22
Pipeline clauses—FILTER before SORT/LIMIT for efficiency; use indexes matching FILTER.
Example code
// edge weight: use traversal OPTIONS or custom pathQuestion 23
Aggregation/grouping—similar to SQL GROUP BY with optional INTO keeping groups.
Example code
// satellite collections: small lookup replicationQuestion 24
Update or insert pattern—useful for idempotent ingestion.
Example code
arangodump --output /tmp/dumpQuestion 25
Unbounded traversals dangerous—cap depth, use pruning filters, and index-backed starts.
Example code
FOR u IN users RETURN u._idQuestion 26
Traversal cost functions—shortest path and weighted walks.
Example code
// OAuth2 / JWT via deploymentQuestion 27
Replicate small lookup collections to every server—join/traverse without remote hops.
Example code
RETURN 1Question 28
arangodump/arangorestore logical; hot backups enterprise—test restore regularly.
Example code
// explain in web UIQuestion 29
Database-level users; collection-level read/write/admin—least privilege for apps.
Example code
// rocksdb block_cacheQuestion 30
External auth integration patterns—enterprise deployments common.
Example code
// MMFiles removedQuestion 31
Prometheus-compatible metrics—scrape for Grafana dashboards.
Example code
RETURN GEO_DISTANCE(@a, @b)Question 32
Explain and profiling in web UI—inspect execution nodes.
Example code
RETURN 1Question 33
rocksdb engine tuning—block cache, write buffers; OS page cache interaction.
Example code
RETURN 33Question 34
Default on-disk LSM storage—compaction tuning matters for write-heavy graphs.
Example code
RETURN 34Question 35
Old storage engine—removed path; migrations completed in supported versions.
Example code
RETURN 35Question 36
GeoJSON points and polygons—AQL geo functions for proximity.
Example code
RETURN 36Question 37
Explain shows execution nodes—optimize FILTER order, index usage, and traversal depth before tuning hardware.
Example code
RETURN 37Question 38
Tight document+graph in one system, fewer moving parts than separate document DB + graph DB—verify licensing for enterprise features.
Example code
RETURN 38Question 39
Named graphs enforce schema of allowed edges; anonymous traversals flexible but easier to misuse.
Example code
// ArangoDB: Named graph vs anonymous
RETURN 1Question 40
Early cut branches—critical for performance on large graphs.
Example code
// ArangoDB: PRUNE in traversals
RETURN 1Question 41
K shortest paths variants—understand complexity vs k.
Example code
// ArangoDB: K_PATHS / K_SHORTEST_PATHS
RETURN 1Question 42
Custom weight expressions—validate acyclic assumptions where required.
Example code
// ArangoDB: Weighted traversals
RETURN 1Question 43
ML integration story—check current product packaging and support.
Example code
// ArangoDB: ArangoML
RETURN 1Question 44
Large result sets via HTTP cursor API—avoid loading all rows client-side.
Example code
// ArangoDB: Stream cursors
RETURN 1Question 45
AQL cursor batch tuning—latency vs round trips.
Example code
// ArangoDB: batchSize
RETURN 1Question 46
Long tasks via job API—poll completion for admin operations.
Example code
// ArangoDB: async jobs
RETURN 1Question 47
Support bundle generator—attach to tickets.
Example code
// ArangoDB: arangoinspect
RETURN 1Question 48
Packaged logs and configs—sensitive data review before sharing.
Example code
// ArangoDB: debugPackage
RETURN 1Question 49
Load testing utility—compare hardware and index choices.
Example code
// ArangoDB: arangobench
RETURN 1Question 50
Development simplicity—no failover until replicated.
Example code
// ArangoDB: deployment mode single
RETURN 1Question 51
Automatic leader election with async replication—RPO > 0 typically.
Example code
// ArangoDB: Active Failover
RETURN 1Question 52
DB servers, coordinators, agents—sizing odd agency for quorum.
Example code
// ArangoDB: Cluster resilience
RETURN 1Question 53
AQL fan-out—keep app near coordinators; reduce cross-DC chatter.
Example code
// ArangoDB: network latency cluster
RETURN 1Question 54
Encrypt east-west between nodes—compliance requirement in many shops.
Example code
// ArangoDB: TLS cluster internal
RETURN 1Question 55
ArangoSearch text processing—tokenizers and filters per language.
Example code
// ArangoDB: user-defined analyzers
RETURN 1Question 56
Substring search support—index size grows with ngram settings.
Example code
// ArangoDB: ngram analyzer
RETURN 1Question 57
Language-aware search—choose analyzer matching content.
Example code
// ArangoDB: stemming analyzers
RETURN 1Question 58
Optimize sorted window queries—define in view definition.
Example code
// ArangoDB: ArangoSearch primarySort
RETURN 1Question 59
Covering search hits—trade storage for speed.
Example code
// ArangoDB: storedValues in views
RETURN 1Question 60
Coordinator merges partial results—watch memory on huge fan-out.
Example code
// ArangoDB: parallel shard query
RETURN 1Question 61
Limit traversals to safe sets—security and performance guardrail.
Example code
// ArangoDB: restrictCollections
RETURN 1Question 62
Partial updates REST—mirror AQL UPDATE patterns.
Example code
// ArangoDB: document API PATCH
RETURN 1Question 63
Full replace—mind lost fields vs merge.
Example code
// ArangoDB: document API replace
RETURN 1Question 64
AQL joins documents and edges—still pay graph locality costs in cluster.
Example code
// ArangoDB: multi-model joins
RETURN 1Question 65
Declarative helpers—compare readability vs raw traversal syntax.
Example code
// ArangoDB: GRAPH_* functions
RETURN 1Question 66
AQL optimizer may inline—verify with explain on upgrades.
Example code
// ArangoDB: subquery optimization
RETURN 1Question 67
Force index use when needed—planner regressions across versions.
Example code
// ArangoDB: index hints
RETURN 1Question 68
CARDINALITY etc.—update for better plans after bulk loads.
Example code
// ArangoDB: statistics figures
RETURN 1Question 69
TOKENS(), PHRASE()—compose with ArangoSearch views.
Example code
// ArangoDB: analyzers in AQL
RETURN 1Question 70
Polygon containment queries—index required for performance.
Example code
// ArangoDB: geo_contains
RETURN 1Question 71
Expire documents on timestamp—similar pattern to Mongo TTL.
Example code
// ArangoDB: TTL index
RETURN 1Question 72
Unique hash/skiplist indexes—handle conflict errors in app.
Example code
// ArangoDB: unique constraint
RETURN 1Question 73
Skip documents missing indexed paths—smaller for optional fields.
Example code
// ArangoDB: sparse indexes
RETURN 1Question 74
Index all array elements—multikey style expansion.
Example code
// ArangoDB: array indexes
RETURN 1Question 75
npm packages in isolated service—audit supply chain.
Example code
// ArangoDB: Foxx dependencies
RETURN 1Question 76
Offload work from requests—still runs in DB process resource budget.
Example code
// ArangoDB: Foxx queues
RETURN 1Question 77
Session patterns—prefer external gateway for large auth complexity.
Example code
// ArangoDB: OAuth2 in Foxx
RETURN 1Question 78
Built-in Pregel API for batch graph algorithms—cluster memory planning.
Example code
// ArangoDB: graph analytics Pregel
RETURN 1Question 79
Licensing gate—evaluate cost vs query SLA.
Example code
// ArangoDB: SmartGraphs enterprise
RETURN 1Question 80
Variant topology—see docs for sharding constraints.
Example code
// ArangoDB: Disjoint SmartGraph
RETURN 1Question 81
Enterprise feature set—key management integration.
Example code
// ArangoDB: Encryption at rest
RETURN 1Question 82
Directory integration—common enterprise deployments.
Example code
// ArangoDB: LDAP auth
RETURN 1Question 83
Who accessed what—compliance; tune verbosity.
Example code
// ArangoDB: audit logging
RETURN 1Question 84
Enterprise consistent snapshot—automate retention.
Example code
// ArangoDB: hot backup API
RETURN 1Question 85
Restore workflows in CI—seed test clusters.
Example code
// ArangoDB: arangodump --overwrite
RETURN 1Question 86
ARANGO_ROOT_PASSWORD env—never commit secrets; persist /var/lib/arangodb3.
Example code
// ArangoDB: docker arangodb
RETURN 1Question 87
Operator patterns—storage class and resource limits.
Example code
// ArangoDB: kubernetes kube-arangodb
RETURN 1Question 88
Import community JSON—validate metric names per version.
Example code
// ArangoDB: grafana dashboard
RETURN 1Question 89
Official drivers Java/JS/Go/Python—connection pooling per process.
Example code
// ArangoDB: driver async API
RETURN 1Question 90
Too high hurts server—multiply by pod count consciously.
Example code
// ArangoDB: connection pool size
RETURN 1Question 91
Set client timeouts—fail fast on stuck coordinators.
Example code
// ArangoDB: request timeout
RETURN 1Question 92
String concat of AQL deadly—bindVars only.
Example code
// ArangoDB: AQL injection
RETURN 1Question 93
Even in bindVars validate allowed values—defense in depth.
Example code
// ArangoDB: escape user input
RETURN 1Question 94
Common pattern: ArangoDB behind GraphQL—resolvers batch carefully.
Example code
// ArangoDB: graphQL gateway
RETURN 1Question 95
Trace AQL and HTTP—correlate with app spans where supported.
Example code
// ArangoDB: otel tracing
RETURN 1Question 96
Monitor long tasks from the interface—ops visibility for admins.
Example code
// ArangoDB: Web UI jobs
RETURN 1Question 97
Follower apply thread tuning—lag under write spikes.
Example code
// ArangoDB: replication applier
RETURN 1Question 98
Tune cache size for query working set—avoid double caching blindly.
Example code
// ArangoDB: rocksdb block_cache
RETURN 1Question 99
Memtable sizing—trade write amplification vs flush frequency.
Example code
// ArangoDB: rocksdb write_buffer
RETURN 1Question 100
Too many L0 files slows reads—monitor rocksdb metrics.
Example code
// ArangoDB: compaction backlog
RETURN 1Question 101
Main config file—separate data and app paths on durable volumes.
Example code
// ArangoDB: arangodb.conf
RETURN 1Question 102
systemd/docker restart policies—fast recovery on crash.
Example code
// ArangoDB: process supervisor
RETURN 1