- Source:
Methods
(static) blobStats() → {object}
Returns statistics about the blobs collection in the current database.
The stats include the combined BSON size of all documents. The time to
run this command therefore heavily depends on the size of the collection.
- Source:
Returns:
statistics about the blobs collection.
- Type
- object
(static) changesForRevisions()
Prints all ids of documents in the nodes collection that contain changes
with the given revisions. Example:
oak.changesForRevisions({'r16d63f52ff7-0-1':1, 'r16d63f5b605-0-1':1})
Caution: this method scans the entire nodes collection and will most likely impact performance of the application using the database. Do NOT run this method on a production system!
- Source:
(static) checkDeepHistory(path, verboseopt)
Same as checkHistory except it goes through ALL descendants as well!
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of the document. | ||
verbose |
boolean |
<optional> |
false | if true, the result object will contain a list of dangling references to previous documents. |
- Source:
(static) checkHistory(path, verboseopt, ignorePathLenopt) → {object}
Checks the history of previous documents at the given path. Orphaned
references to removed previous documents are counted and listed when
run with verbose set to true.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of the document. | ||
verbose |
boolean |
<optional> |
false | if true, the result object will contain a list of dangling references to previous documents. |
ignorePathLen |
boolean |
<optional> |
false | whether to ignore a long path and still try to read it from MongoDB. |
- Source:
Returns:
the result of the check.
- Type
- object
(static) checkLastRevs(path, clusterId) → {object}
Checks the _lastRev for a given clusterId. The checks starts with the
given path and walks up to the root node.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a node to check |
clusterId |
number | the id of an oak cluster node. |
- Source:
Returns:
the result of the check.
- Type
- object
(static) countChildren(path) → {number}
Determines the number of child node (including all sub tree)
for a given parent node path. This would be faster compared to
getChildStats as it does not load the doc and works on
index only.
Note that there might be some difference between db.nodes.count()
and countChildren('/') as split docs, intermediate docs are not
accounted for
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a node. |
- Source:
Returns:
the number of children, including all descendant nodes.
- Type
- number
(static) findOne(path) → {object}
Finds the document with the given path.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of the document. |
- Source:
Returns:
the document or null if it doesn't exist.
- Type
- object
(static) fixDeepHistory(path, verboseopt)
Same as fixHistory except it goes through ALL descendants as well!
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of the document. | ||
verbose |
boolean |
<optional> |
false | if true, the result object will contain a list of removed references to previous documents. |
- Source:
(static) fixHistory(path, verboseopt) → {object}
Repairs the history of previous documents at the given path. Orphaned
references to removed previous documents are cleaned up and listed when
run with verbose set to true.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of the document. | ||
verbose |
boolean |
<optional> |
false | if true, the result object will contain a list of removed references to previous documents. |
- Source:
Returns:
the result of the fix.
- Type
- object
(static) fixLastRevs(path, clusterId) → {object}
Fixes the _lastRev for a given clusterId. The fix starts with the
given path and walks up to the root node.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a node to fix |
clusterId |
number | the id of an oak cluster node. |
- Source:
Returns:
the result of the fix.
- Type
- object
(static) forEachChild(path, callable)
Performs a breadth first traversal for nodes under given path
and invokes the passed function for each child node.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a node. |
callable |
a function to be called for each child node including all descendant nodes. The MongoDB document is passed as the single parameter of the function. |
- Source:
(static) formatRevision(rev) → {string}
Converts the given Revision String into a more human readable version,
which also prints the date.
Parameters:
Name | Type | Description |
---|---|---|
rev |
string | a revision string. |
- Source:
Returns:
a human readable string representation of the revision.
- Type
- string
(static) getChildStats(path) → {Object}
Provides stats related to number of child nodes
below given path or total size taken by such nodes.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a node. |
- Source:
Returns:
statistics about the child nodes
including all descendants.
- Type
- Object
(static) getCommitValue(path, revision) → {object}
Returns the commit value entry for the change with the given revision.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of a document. |
revision |
string | the revision of a change on the document. |
- Source:
Returns:
the commit entry for the given revision or null if
there is none.
- Type
- object
(static) indexStats() → {Array}
Collects various stats related to Oak indexes stored under /oak:index.
- Source:
Returns:
index stats.
- Type
- Array
(static) listCheckpoints() → {object}
List all checkpoints.
- Source:
Returns:
all checkpoints
- Type
- object
(static) listChildren(path)
Lists the children at a given path.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | list the children of the document with this path. |
- Source:
(static) listDescendants(path)
Lists the descendant documents at a given path.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | list the descendants of the document with this path. |
- Source:
(static) pathFromId(id) → {string}
Returns the path part of the given id.
Parameters:
Name | Type | Description |
---|---|---|
id |
string | the id of a Document in the nodes collection. |
- Source:
Returns:
the path derived from the id.
- Type
- string
(static) prepareDeepHistory(path, verboseopt)
Preparation step which scans through all descendants and prints out
'fixHistory' for those that need fixing of their 'dangling references'.
See fixHistory for parameter details.
Run this command via something as follows:
mongo <DBNAME> -eval "load('oak-mongo.js'); oak.prepareDeepHistory('/');" > fix.js
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of a document. | ||
verbose |
boolean |
<optional> |
false | if true, the result object will contain a list of dangling references to previous documents. |
- Source:
(static) printMongoExportCommand(path, options) → {string}
Prints mongoexport command to export all documents related to given path.
Related documents refer to all documents in the hierarchy and their split documents.
e.g.
> oak.printMongoExportCommand("/etc", {db: "aem-author"})
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of the document. |
options |
object | pass optional parameters for host, port, db, and filename |
- Source:
Returns:
command line which can be used to export documents using mongoexport
- Type
- string
(static) printOplogSliceCommand(revStr, options) → {string}
Prints mongoexport command to export oplog entries around time represented by revision.
e.g.
> oak.printOplogSliceCommand("r14e64620028-0-1", {db: "aem-author"})
Note, this assumed that time on mongo instance is synchronized with time on oak instance. If that's
not the case, then adjust revStr to account for the difference.
Parameters:
Name | Type | Description |
---|---|---|
revStr |
string | revision string around which oplog is to be exported. |
options |
object | pass optional parameters for host, port, db, filename, oplogTimeBuffer |
- Source:
Returns:
command line which can be used to export oplog entries using mongoexport
- Type
- string
(static) removeCheckpointsOlderThan(rev) → {object}
Removes all checkpoints older than a given Revision.
Parameters:
Name | Type | Description |
---|---|---|
rev |
string | checkpoints older than this revision are removed. |
- Source:
Returns:
the result of the MongoDB update.
- Type
- object
(static) removeCollisions(path, clusterId, limitopt) → {object}
Removes all collision markers on the document with the given path and
clusterId. This method will only remove collisions when the clusterId
is inactive.
This corresponds to DocumentNodeStore.cleanRootCollisions(), which is
part of a startup and normal background update.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of a document | ||
clusterId |
number | collision markers for this clusterId will be removed. | ||
limit |
number |
<optional> |
1000000 | maximum number of collision markers to remove. |
- Source:
Returns:
the result of the MongoDB update.
- Type
- object
(static) removeDescendantsAndSelf(path)
Removes the complete subtree rooted at the given path.
Parameters:
Name | Type | Description |
---|---|---|
path |
string | the path of the subtree to remove. |
- Source:
(static) removeUnmergedBranchChanges(path, clusterId, limitopt) → {object}
Removes unmerged branch changes on the document with the given path
and clusterId. This method will only remove unmerged branch changes when
the clusterId is inactive.
On big documents with write contention it is advisable to limit the
number of unmerged branch changes to remove in one go. Otherwise MongoDB
may have difficulties applying the change to the document.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of a document | ||
clusterId |
number | unmerged branch changes for this clusterId will be removed. | ||
limit |
number |
<optional> |
1000000 | maximum number of unmerged branches to remove. |
- Source:
Returns:
the result of the MongoDB update.
- Type
- object
(static) removeUnmergedBranches(path, clusterId, limitopt) → {object}
Removes all unmerged branches on the document with the given path and
clusterId. This method will only remove unmerged branches when the
clusterId is inactive.
This corresponds to DocumentNodeStore.cleanOrphanedBranches(), which is
part of a startup and normal background update.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
path |
string | the path of a document | ||
clusterId |
number | collision markers for this clusterId will be removed. | ||
limit |
number |
<optional> |
1000000 | maximum number of unmerged branches to remove. |
- Source:
Returns:
the result of the MongoDB update.
- Type
- object
(static) systemStats() → {object}
Collects various stats related to Oak usage of Mongo.
- Source:
Returns:
system stats.
- Type
- object