# Util.id Module

\
&#x20;Import

```
import { id } from 'util';
```

### Methods

[isIdFormat(id)](https://docs.medable.com/reference#section-isidformat-id-)\
[couldBeId(id)](https://docs.medable.com/reference#section-couldbeid-id-)\
[equalIds(...ids)](https://docs.medable.com/reference#section-equalids-ids-)\
[timestampToId(timestamp)](https://docs.medable.com/reference#section-timestamptoid-timestamp-)\
[idToTimestamp(id)](https://docs.medable.com/reference#section-idtotimestamp-id-)\
[getIdOrNull(id, fromObject)](https://docs.medable.com/reference#section-getidornull-id-fromobject-)\
[indexOfId(ids, id)](https://docs.medable.com/reference#section-indexofid-ids-id-)\
[inIdArray(ids, id)](https://docs.medable.com/reference#section-inidarray-ids-id-)\
[getIdArray(ids, convertToStrings, fnEach)](https://docs.medable.com/reference#section-getidarray-ids-converttostrings-fneach-)\
[uniqueIdArray(ids)](https://docs.medable.com/reference#section-uniqueidarray-ids-)\
[lookupId(obj, id)](https://docs.medable.com/reference#section-lookupid-obj-id-)\
[findIdPos(array, path, id)](https://docs.medable.com/reference#section-findidpos-array-path-id-)\
[findIdInArray(array, path, id, useGetter)](https://docs.medable.com/reference#section-findidinarray-array-path-id-)\
[diffIdArrays(array, ...rest)](https://docs.medable.com/reference#section-diffidarrays-array-rest-)\
[intersectIdArrays(...arrays)](https://docs.medable.com/reference#section-intersectidarrays-arrays-)\
[isId(id)](https://docs.medable.com/reference#section-isid-id-)

### isIdFormat(id)

Returns true if the passed in argument is a string and is in the form of an ObjectID (/^\[0-9a-fA-F]{24}$/)

**Arguments**

* `id` (String) the string to test

**Returns**

Boolean

### couldBeId(id)

Returns true if the passed in argument is an instance of ObjectID or a string in the form of an ObjectID (/^\[0-9a-fA-F]{24}$/).

**Arguments**

* `id` (String|ObjectID)

**Returns**

Boolean

### equalIds(...ids)

Returns true if all passed in identifiers are equal and valid as ObjectIDs

**Arguments**

* `...ids` (String\[]|ObjectID\[])

**Returns**

Boolean

### timestampToId(timestamp)

Converts a timestamp (in ms), parsable date string or date value to an ObjectID. Useful for comparing ObjectIDs (eg. `{_id: {$gt: ids.timestampToId(Date.now()-86400000)}}`)

**Arguments**

* `timestamp` (String|Number|Date)

**Returns**

ObjectID

### idToTimestamp(id)

Converts an ObjectID to a timestamp (in seconds)

**Arguments**

* `id` (ObjectID)

**Returns**

Number

### getIdOrNull(id, fromObject)

Guarantees return of an ObjectID if the id argument is an ObjectID, a valid string representation, or if the fromObject argument is true and the id argument is a javascript object with a valid `_id` property. Returns null otherwise.

**Arguments**

* `id` (ObjectID|String|Object)
* `fromObject` (Boolean) default false. if true, checks for a valid `_id` property of the id argument.

**Returns**

ObjectID

### indexOfId(ids, id)

Returns the index of the id argument in the ids array, or -1 if ids is not an array or id is not present.

**Arguments**

* `ids` (ObjectID\[])
* `id` (ObjectID|String)

**Returns**

Number

### inIdArray(ids, id)

Returns true if the id argument value is contained in the ids array.

**Arguments**

* `ids` (ObjectID\[])
* `id` (ObjectID|String)

**Returns**

Boolean

### getIdArray(ids, convertToStrings, fnEach)

Converts the ids argument into an array of ObjectIDs or String representations thereof. Any values that do not qualify are removed from the array. Note the ids argument may be modified inside the function.

**Arguments**

* `ids` (ObjectID\[])
* `convertToStrings` (Boolean) If true, converts each valid ObjectID to string.
* `fnEach` (Function) If present, calls the function for each raw value in the input array ()`(id) => { ...; return id; }` ), which should return a value that is then passed into getIdOrNull(id)

**Returns**

ObjectID\[]

### uniqueIdArray(ids)

Returns an array of ObjectIDs with all duplicates removed.

**Arguments**

* `ids` (ObjectID\[])

**Returns**

ObjectID\[]

### findIdPos(objects, path, id)

Given an array of objects, uses `path` to inspect object properties for the first matching `id` and returns its index in the array, or -1.

**Arguments**

* `objects` (Object\[])
* `path` (String) A dot syntax path to inspect (Uses util.paths.to internally)
* `id` (ObjectID|String) The identifier to match.

**Returns**

Number

### findIdInArray(objects, path, id)

Given an array of objects, uses `path` to inspect object properties for the first matching `id` and returns the matching object.

**Arguments**

* `objects` (Object\[])
* `path` (String) A dot syntax path to inspect (Uses util.paths.to internally)
* `id` (ObjectID|String) The identifier to match.

**Returns**

Object

### diffIdArrays(array, ...rest)

Returns the values from `array` that are not present in the other arrays.

**Arguments**

* `objects` (ObjectID\[])
* `...rest` (ObjectID\[])

**Returns**

ObjectID\[]

### intersectIdArrays(...arrays)

Computes the list of values that are the intersection of all the arrays. Each value in the result is present in each of the arrays.

**Arguments**

* `...arrays` (ObjectID\[])

**Returns**

ObjectID\[]

### isId(id)

Returns true if `id` is an instance of ObjectID

**Arguments**

* `id` (ObjectID)

**Returns**

Boolean


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.medable.com/cortex-api/scripting/modules-1/util.id-module.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
