Files
payload/packages/plugin-relationship-object-ids
Alessio Gravili bc98567f41 feat!: rename @payloadcms/ui/client to @payloadcms/ui, and other auto-suggestion & exports improvements (#6848)
**BREAKING:** All `@payloadcms/ui/client` exports have been renamed to
`@payloadcms/ui`. A simple find & replace across your entire project
will be enough to migrate. This change greatly improves import
auto-completions in IDEs which lack proper support for package.json
exports, like Webstorm.
2024-06-19 16:36:00 +00:00
..

Payload Relationship ObjectID Plugin

This plugin automatically enables all Payload relationship and upload field types to be stored as ObjectIDs in MongoDB.

Minimum required version of Payload: 1.9.5

What it does

It injects a beforeChange field hook into each relationship and upload field, which converts string-based IDs to ObjectIDs immediately prior to storage.

Usage

Simply import and install the plugin to make it work:

import { relationshipsAsObjectID } from '@payloadcms/plugin-relationship-object-ids'
import { buildConfig } from 'payload'

export default buildConfig({
  // your config here
  plugins: [
    // Call the plugin within your `plugins` array
    relationshipsAsObjectID(),
  ],
})

Migration

Note - this plugin will only store newly created or resaved documents' relations as ObjectIDs. It will not modify any of your existing data. If you'd like to convert existing data into an ObjectID format, you should write a migration script to loop over all documents in your database and then simply resave each one.

Support

If you need help with this plugin, join our Discord and we'd be happy to give you a hand.