Interface EdgeCollection<T>

Represents an edge collection in a Database.

See DocumentCollection for a more generic variant of this interface more suited for regular document collections.

See also GraphEdgeCollection for the type representing an edge collection in a Graph.

When using TypeScript, collections can be cast to a specific edge document data type to increase type safety.

Example

interface Friend {
startDate: number;
endDate?: number;
}
const db = new Database();
const edges = db.collection("friends") as EdgeCollection<Friend>;

Type Parameters

  • T extends Record<string, any> = any

    Type to use for edge document data. Defaults to any.

Hierarchy

Properties

name: string

Name of the collection.

Methods

  • Retrieves all documents in the collection.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const cursor = await collection.all();
    const cursor = await db.query(aql`
    FOR doc IN ${collection}
    RETURN doc
    `);

    Parameters

    Returns Promise<ArrayCursor<Edge<T>>>

  • Retrieves a random document from the collection.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const doc = await collection.any();
    const cursor = await db.query(aql`
    FOR doc IN ${collection}
    SORT RAND()
    LIMIT 1
    RETURN doc
    `);
    const doc = await cursor.next();

    Returns Promise<Edge<T>>

  • Retrieves all documents in the collection matching the given example.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const cursor = await collection.byExample({ flavor: "strawberry" });
    const cursor = await db.query(aql`
    FOR doc IN ${collection}
    FILTER doc.flavor == "strawberry"
    RETURN doc
    `);

    Parameters

    Returns Promise<ArrayCursor<Edge<T>>>

  • Triggers compaction for a collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.compact();
    // Background compaction is triggered on the collection

    Returns Promise<ArangoApiResponse<Record<string, never>>>

  • Creates a collection with the given options and the instance's name.

    See also createCollection and createEdgeCollection.

    Note: When called on an EdgeCollection instance in TypeScript, the type option must still be set to the correct CollectionType. Otherwise this will result in the collection being created with the default type (i.e. as a document collection).

    Example

    const db = new Database();
    const collection = db.collection("potatoes");
    await collection.create();
    // the document collection "potatoes" now exists

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists

    Example

    interface Friend {
    startDate: number;
    endDate?: number;
    }
    const db = new Database();
    const collection = db.collection("friends") as EdgeCollection<Friend>;
    // even in TypeScript you still need to indicate the collection type
    // if you want to create an edge collection
    await collection.create({ type: CollectionType.EDGE_COLLECTION });
    // the edge collection "friends" now exists

    Parameters

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties>>

  • Retrieves the document matching the given key or id.

    Throws an exception when passed a document or _id from a different collection, or if the document does not exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123");
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    }

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", { graceful: true });
    if (document) {
    console.log(document);
    } else {
    console.error("Document does not exist");
    }

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionReadOptions

      Options for retrieving the document.

    Returns Promise<Edge<T>>

  • Retrieves the document matching the given key or id.

    Throws an exception when passed a document or _id from a different collection, or if the document does not exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const document = await collection.document("abc123", false);
    console.log(document);
    } catch (e: any) {
    console.error("Could not find document");
    }

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const document = await collection.document("abc123", true);
    if (document) {
    console.log(document);
    } else {
    console.error("Document does not exist");
    }

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • graceful: boolean

      If set to true, null is returned instead of an exception being thrown if the document does not exist.

    Returns Promise<Edge<T>>

  • Checks whether a document matching the given key or id exists in this collection.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const exists = await collection.documentExists("abc123");
    if (!exists) {
    console.log("Document does not exist");
    }

    Parameters

    Returns Promise<boolean>

  • Derives a document _id from the given selector for this collection.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const meta = await collection.save({ foo: "bar" }, { returnNew: true });
    const doc = meta.new;
    console.log(collection.documentId(meta)); // via meta._id
    console.log(collection.documentId(doc)); // via doc._id
    console.log(collection.documentId(meta._key)); // also works

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    const collection2 = db.collection("other-collection");
    const meta = await collection1.save({ foo: "bar" });
    // Mixing collections is usually a mistake
    console.log(collection1.documentId(meta)); // ok: same collection
    console.log(collection2.documentId(meta)); // throws: wrong collection
    console.log(collection2.documentId(meta._id)); // also throws
    console.log(collection2.documentId(meta._key)); // ok but wrong collection

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    Returns string

  • Retrieves the documents matching the given key or id values.

    Throws an exception when passed a document or _id from a different collection, or if the document does not exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    try {
    const documents = await collection.documents(["abc123", "xyz456"]);
    console.log(documents);
    } catch (e: any) {
    console.error("Could not find document");
    }

    Parameters

    • selectors: (string | ObjectWithKey)[]

      Array of document _key, _id or objects with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionBatchReadOptions

      Options for retrieving the documents.

    Returns Promise<Edge<T>[]>

  • Deletes the collection from the database.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.drop();
    // The collection "some-collection" is now an ex-collection

    Parameters

    Returns Promise<ArangoApiResponse<Record<string, never>>>

  • Deletes the index with the given name or id from the database.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.dropIndex("some-index");
    // The index "some-index" no longer exists

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

    Returns Promise<ArangoApiResponse<{
        id: string;
    }>>

  • Retrieves a list of all edges of the document matching the given selector.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.edges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["x", "y", "z"]

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<T>>>

  • Creates a persistent index on the collection if it does not already exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a unique index for looking up documents by username
    await collection.ensureIndex({
    type: "persistent",
    fields: ["username"],
    name: "unique-usernames",
    unique: true
    });

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        cacheEnabled: boolean;
        deduplicate: boolean;
        estimates: boolean;
        fields: string[];
        storedValues?: string[];
        type: "persistent";
    } & {
        isNewlyCreated: boolean;
    }>>

  • Creates a TTL index on the collection if it does not already exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "createdAt" timestamp one day after creation
    await collection.ensureIndex({
    type: "ttl",
    fields: ["createdAt"],
    expireAfter: 60 * 60 * 24 // 24 hours
    });

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Expire documents with "expiresAt" timestamp according to their value
    await collection.ensureIndex({
    type: "ttl",
    fields: ["expiresAt"],
    expireAfter: 0 // when attribute value is exceeded
    });

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        expireAfter: number;
        fields: [string];
        selectivityEstimate: number;
        type: "ttl";
    } & {
        isNewlyCreated: boolean;
    }>>

  • Creates a multi-dimensional index on the collection if it does not already exist.

    Example

    const db = new Database();
    const collection = db.collection("some-points");
    // Create a multi-dimensional index for the attributes x, y and z
    await collection.ensureIndex({
    type: "mdi",
    fields: ["x", "y", "z"],
    fieldValueTypes: "double"
    });
    
    

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        fieldValueTypes: "double";
        fields: string[];
        type: "mdi";
    } & {
        isNewlyCreated: boolean;
    }>>

  • Creates a fulltext index on the collection if it does not already exist.

    Deprecated

    Fulltext indexes have been deprecated in ArangoDB 3.10 and should be replaced with ArangoSearch.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create a fulltext index for tokens longer than or equal to 3 characters
    await collection.ensureIndex({
    type: "fulltext",
    fields: ["description"],
    minLength: 3
    });

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        fields: [string];
        minLength: number;
        type: "fulltext";
    } & {
        isNewlyCreated: boolean;
    }>>

  • Creates a geo index on the collection if it does not already exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an index for GeoJSON data
    await collection.ensureIndex({
    type: "geo",
    fields: ["lngLat"],
    geoJson: true
    });

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        bestIndexedLevel: number;
        fields: [string, string] | [string];
        geoJson: boolean;
        legacyPolygons: boolean;
        maxNumCoverCells: number;
        type: "geo";
        worstIndexedLevel: number;
    } & {
        isNewlyCreated: boolean;
    }>>

  • Creates a inverted index on the collection if it does not already exist.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // Create an inverted index
    await collection.ensureIndex({
    type: "inverted",
    fields: ["a", { name: "b", analyzer: "text_en" }]
    });

    Parameters

    Returns Promise<ArangoApiResponse<GenericIndex & {
        analyzer: string;
        cache?: boolean;
        cleanupIntervalStep: number;
        commitIntervalMsec: number;
        consolidationIntervalMsec: number;
        consolidationPolicy: Required<TierConsolidationPolicy>;
        features: AnalyzerFeature[];
        fields: {
            analyzer?: string;
            cache?: boolean;
            features?: AnalyzerFeature[];
            includeAllFields?: boolean;
            name: string;
            nested?: InvertedIndexNestedField[];
            searchField?: boolean;
            trackListPositions?: boolean;
        }[];
        includeAllFields: boolean;
        optimizeTopK: string[];
        parallelism: number;
        primaryKeyCache?: boolean;
        primarySort: {
            cache?: boolean;
            compression: Compression;
            fields: {
                direction: Direction;
                field: string;
            }[];
        };
        searchField: boolean;
        storedValues: {
            cache?: boolean;
            compression: Compression;
            fields: string[];
        }[];
        trackListPositions: boolean;
        type: "inverted";
        writeBufferActive: number;
        writeBufferIdle: number;
        writeBufferSizeMax: number;
    } & {
        isNewlyCreated: boolean;
    }>>

  • Checks whether the collection exists.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const result = await collection.exists();
    // result indicates whether the collection exists

    Returns Promise<boolean>

  • Retrieves statistics for a collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const data = await collection.figures();
    // data contains the collection's figures

    Parameters

    • Optional details: boolean

      whether to return extended storage engine-specific details to the figures, which may cause additional load and impact performance

    Returns Promise<ArangoApiResponse<CollectionMetadata & CollectionProperties & {
        count: number;
        figures: Record<string, any>;
    }>>

  • Retrieves a single document in the collection matching the given example.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const doc = await collection.firstExample({ flavor: "strawberry" });
    const cursor = await db.query(aql`
    FOR doc IN ${collection}
    FILTER doc.flavor == "strawberry"
    LIMIT 1
    RETURN doc
    `);
    const doc = await cursor.next();

    Parameters

    • example: Partial<DocumentData<T>>

      An object representing an example for the document.

    Returns Promise<Edge<T>>

  • Performs a fulltext query in the given attribute on the collection.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const cursor = await collection.fulltext("article", "needle");
    const cursor = await db.query(aql`
    FOR doc IN FULLTEXT(${collection}, "article", "needle")
    RETURN doc
    `);

    Parameters

    • attribute: string

      Name of the field to search.

    • query: string

      Fulltext query string to search for.

    • Optional options: SimpleQueryFulltextOptions

      Options for performing the fulltext query.

    Returns Promise<ArrayCursor<Edge<T>>>

  • Retrieves the shardId of the shard responsible for the given document.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const responsibleShard = await collection.getResponsibleShard();

    Parameters

    • document: Partial<Document<T>>

      Document in the collection to look up the shardId of.

    Returns Promise<string>

  • Bulk imports the given data into the collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    { _key: "x", _from: "vertices/a", _to: "vertices/b", weight: 1 },
    { _key: "y", _from: "vertices/a", _to: "vertices/c", weight: 2 }
    ]
    );

    Parameters

    Returns Promise<CollectionImportResult>

  • Bulk imports the given data into the collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    [
    [ "_key", "_from", "_to", "weight" ],
    [ "x", "vertices/a", "vertices/b", 1 ],
    [ "y", "vertices/a", "vertices/c", 2 ]
    ]
    );

    Parameters

    • data: any[][]

      The data to import, as an array containing a single array of attribute names followed by one or more arrays of attribute values for each edge document.

    • Optional options: CollectionImportOptions

      Options for importing the data.

    Returns Promise<CollectionImportResult>

  • Bulk imports the given data into the collection.

    If type is omitted, data must contain one JSON array per line with the first array providing the attribute names and all other arrays providing attribute values for each edge document.

    If type is set to "documents", data must contain one JSON document per line.

    If type is set to "list", data must contain a JSON array of edge documents.

    If type is set to "auto", data can be in either of the formats supported by "documents" or "list".

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '{"_key":"x","_from":"vertices/a","_to":"vertices/b","weight":1}\r\n' +
    '{"_key":"y","_from":"vertices/a","_to":"vertices/c","weight":2}\r\n',
    { type: "documents" } // or "auto"
    );

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '[{"_key":"x","_from":"vertices/a","_to":"vertices/b","weight":1},' +
    '{"_key":"y","_from":"vertices/a","_to":"vertices/c","weight":2}]',
    { type: "list" } // or "auto"
    );

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    await collection.import(
    '["_key","_from","_to","weight"]\r\n' +
    '["x","vertices/a","vertices/b",1]\r\n' +
    '["y","vertices/a","vertices/c",2]\r\n'
    );

    Parameters

    • data: string | Blob | Buffer

      The data to import as a Buffer (Node), Blob (browser) or string.

    • Optional options: CollectionImportOptions & {
          type?: "documents" | "list" | "auto";
      }

      Options for importing the data.

    Returns Promise<CollectionImportResult>

  • Retrieves a list of all incoming edges of the document matching the given selector.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.inEdges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["z"]

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<T>>>

  • Returns an index description by name or id if it exists.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const index = await collection.index("some-index");

    Parameters

    • selector: IndexSelector

      Index name, id or object with either property.

    Returns Promise<Index>

  • Returns a list of all index descriptions for the collection.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const indexes = await collection.indexes();

    Returns Promise<Index[]>

  • Retrieves a list of references for all documents in the collection.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const ids = await collection.list("id");
    const ids = await db.query(aql`
    FOR doc IN ${collection}
    RETURN doc._id
    `);

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const keys = await collection.list("key");
    const keys = await db.query(aql`
    FOR doc IN ${collection}
    RETURN doc._key
    `);

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    // const paths = await collection.list("path");
    const paths = await db.query(aql`
    FOR doc IN ${collection}
    RETURN CONCAT("/_db/", CURRENT_DATABASE(), "/_api/document/", doc._id)
    `);

    Parameters

    Returns Promise<ArrayCursor<string>>

  • (RocksDB only.) Instructs ArangoDB to load as many indexes of the collection into memory as permitted by the memory limit.

    Example

    const db = new Database();
    const collection = db.collection("indexed-collection");
    await collection.loadIndexes();
    // the indexes are now loaded into memory

    Returns Promise<boolean>

  • Retrieves all documents matching the given document keys.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const keys = ["a", "b", "c"];
    // const docs = await collection.byKeys(keys);
    const cursor = await db.query(aql`
    FOR key IN ${keys}
    LET doc = DOCUMENT(${collection}, key)
    RETURN doc
    `);
    const docs = await cursor.all();

    Parameters

    • keys: string[]

      An array of document keys to look up.

    Returns Promise<Edge<T>[]>

  • Retrieves a list of all outgoing edges of the document matching the given selector.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/a", "vertices/c"],
    ["z", "vertices/d", "vertices/a"],
    ]);
    const edges = await collection.outEdges("vertices/a");
    console.log(edges.map((edge) => edge._key)); // ["x", "y"]

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionEdgesOptions

      Options for retrieving the edges.

    Returns Promise<ArangoApiResponse<CollectionEdgesResult<T>>>

  • (RocksDB only.) Instructs ArangoDB to recalculate the collection's document count to fix any inconsistencies.

    Example

    const db = new Database();
    const collection = db.collection("inconsistent-collection");
    const badData = await collection.count();
    // oh no, the collection count looks wrong -- fix it!
    await collection.recalculateCount();
    const goodData = await collection.count();
    // goodData contains the collection's improved count

    Returns Promise<boolean>

  • Removes an existing document from the collection.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("friends");
    const doc = await collection.document("musadir");
    await collection.remove(doc);
    // document with key "musadir" deleted

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: CollectionRemoveOptions

      Options for removing the document.

    Returns Promise<DocumentMetadata & {
        old?: Edge<T>;
    }>

  • Removes all documents matching the given document keys.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("some-collection");
    const keys = ["a", "b", "c"];
    // const { removed, ignored } = await collection.removeByKeys(keys);
    const cursor = await db.query(aql`
    FOR key IN ${keys}
    LET doc = DOCUMENT(${collection}, key)
    FILTER doc
    REMOVE doc IN ${collection}
    RETURN key
    `);
    const removed = await cursor.all();
    const ignored = keys.filter((key) => !removed.includes(key));

    Parameters

    Returns Promise<ArangoApiResponse<SimpleQueryRemoveByKeysResult<T>>>

  • Renames the collection and updates the instance's name to newName.

    Additionally removes the instance from the Database's internal cache.

    Note: Renaming collections may not be supported when ArangoDB is running in a cluster configuration.

    Example

    const db = new Database();
    const collection1 = db.collection("some-collection");
    await collection1.rename("other-collection");
    const collection2 = db.collection("some-collection");
    const collection3 = db.collection("other-collection");
    // Note all three collection instances are different objects but
    // collection1 and collection3 represent the same ArangoDB collection!

    Parameters

    • newName: string

      The new name of the collection.

    Returns Promise<ArangoApiResponse<CollectionMetadata>>

  • Replaces an existing document in the collection.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.replace(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false undefined

    Parameters

    • selector: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • newData: DocumentData<T>

      The contents of the new document.

    • Optional options: CollectionReplaceOptions

      Options for replacing the document.

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<T>;
        old?: Edge<T>;
    }>

  • Replaces existing documents in the collection, identified by the _key or _id of each document.

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    await collection.save(
    {
    _key: "salman",
    _from: "users/rana",
    _to: "users/salman",
    active: false,
    best: false
    }
    );
    const result = await collection.replaceAll(
    [
    { _key: "musadir", active: false },
    { _key: "salman", active: true, best: true }
    ],
    { returnNew: true }
    );
    console.log(result[0].new.active, result[0].new.best); // false undefined
    console.log(result[1].new.active, result[1].new.best); // true true

    Parameters

    • newData: Object[]

      The documents to replace.

    • Optional options: CollectionReplaceOptions

      Options for replacing the documents.

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<T>;
        old?: Edge<T>;
    })[]>

  • Inserts a new document with the given data into the collection.

    Example

    const db = new Database();
    const collection = db.collection("friends");
    const result = await collection.save(
    { _from: "users/rana", _to: "users/mudasir", active: false },
    { returnNew: true }
    );

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<T>;
        old?: Edge<T>;
    }>

  • Performs a traversal starting from the given startVertex and following edges contained in this edge collection.

    Throws an exception when passed a document or _id from a different collection.

    See also traversal.

    Deprecated

    Simple Queries have been deprecated in ArangoDB 3.4 and are no longer supported in ArangoDB 3.12. They can be replaced with AQL queries.

    Example

    const db = new Database();
    const collection = db.collection("edges");
    await collection.import([
    ["_key", "_from", "_to"],
    ["x", "vertices/a", "vertices/b"],
    ["y", "vertices/b", "vertices/c"],
    ["z", "vertices/c", "vertices/d"],
    ]);
    const startVertex = "vertices/a";
    const cursor = await db.query(aql`
    FOR vertex IN OUTBOUND ${startVertex}
    RETURN vertex._key
    `);
    const result = await cursor.all();
    console.log(result); // ["a", "b", "c", "d"]

    Parameters

    • startVertex: DocumentSelector

      Document _key, _id or object with either of those properties (e.g. a document from this collection).

    • Optional options: TraversalOptions

      Options for performing the traversal.

    Returns Promise<any>

  • Updates an existing document in the collection.

    Throws an exception when passed a document or _id from a different collection.

    Example

    const db = new Database();
    const collection = db.collection("friends");
    await collection.save(
    {
    _key: "musadir",
    _from: "users/rana",
    _to: "users/mudasir",
    active: true,
    best: true
    }
    );
    const result = await collection.update(
    "musadir",
    { active: false },
    { returnNew: true }
    );
    console.log(result.new.active, result.new.best); // false true

    Parameters

    Returns Promise<DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<T>;
        old?: Edge<T>;
    }>

  • Updates existing documents in the collection, identified by the _key or _id of each document.

    Parameters

    • newData: Object[]

      The data for updating the documents.

    • Optional options: CollectionUpdateOptions

      Options for updating the documents.

      const db = new Database();
      const collection = db.collection("friends");
      await collection.save(
      {
      _key: "musadir",
      _from: "users/rana",
      _to: "users/mudasir",
      active: true,
      best: true
      }
      );
      await collection.save(
      {
      _key: "salman",
      _from: "users/rana",
      _to: "users/salman",
      active: false,
      best: false
      }
      );
      const result = await collection.updateAll(
      [
      { _key: "musadir", active: false },
      { _key: "salman", active: true, best: true }
      ],
      { returnNew: true }
      );
      console.log(result[0].new.active, result[0].new.best); // false true
      console.log(result[1].new.active, result[1].new.best); // true true

    Returns Promise<(DocumentOperationFailure | DocumentMetadata & {
        _oldRev?: string;
    } & {
        new?: Edge<T>;
        old?: Edge<T>;
    })[]>

Generated using TypeDoc