# Mongo ObjectId Key (ObjectIdPkGenerator)

The [Mongo ObjectId Key](https://docs.tonic.ai/app/generation/generators/generator-reference/mongo-objectid-key) generator generates values to de-identify fields that contain MongoDB `ObjectId` values. The column value must be 12 bytes long.

## Link object structure <a href="#generator-api-objectid-key-link-object" id="generator-api-objectid-key-link-object"></a>

The ObjectId Key generator does not support linking. It can be self-consistent, but not consistent with another column. You cannot configure differential privacy.

The `metadata` object is populated from the [`ObjectIdPkMetadata`](https://app.tonic.ai/apidocs/index.html#/models/ObjectIdPkMetadata) object. `preserveTimetampAndCounter` indicates whether to only change the random value portion of the identifier, but keep the timestamp and incremented counter portions.

There is no generator-specific configuration.

```json
{
  "schema": "string",
  "table": "string",
  "column": "string",
  "path": "string",  //JSON fields only
  "dataType": "string",  //MongoDB, Amazon DynamoDB, and JSON fields only
  "metadata": {
    "presetId": "string",
    "generatorId": "ObjectIdPkGenerator",
    "isConsistent": false,
    "preserveTimestampAndCounter": false,
    "encryptionProcessor": "x-on", //To use configured Structural data encryption
    "customValueProcessor": "string"  //If custom value processor applied
  }
}
```

## Example replacement <a href="#generator-api-objectid-key-replacement" id="generator-api-objectid-key-replacement"></a>

In the following example replacement for the Mongo ObjectId Key generator, consistency is disabled.

Only the random value portion of the identifier is changed.

```json
{
  "name": "userid",
  "schema": "public",
  "table": "users",
  "links": [
    {
      "schema": "public",
      "table": "users",
      "column": "user_id",
      "dataType": "ObjectId",
      "metadata": {
        "presetId": "ObjectIdPkGenerator",
        "generatorId": "ObjectIdPkGenerator",
        "isConsistent": false,
        "preserveTimestampAndCounter": true
      }
    }
  ]
}
```
