Join us live Sept. 27 – How Sanity and Vercel powered Morning Brew's transformation –>

I'm now trying to import an array of related objects and Sanity want's a unique _key for each entry. How can I get Sanity to just pick its own key during the import?

8 replies
Last updated: Sep 11, 2020

As part of my first Sanity project I'm importing existing data. All's going well, not pretty but it works, except I'm now trying to import an array of related objects and Sanity want's a unique

_key
for each entry. How can I get Sanity to just pick its own key during the import?

Sep 11, 2020, 9:08 AM

You can just use something like

nanoid
to create your own.

Sep 11, 2020, 9:13 AM

Thanks, I guess I could generate my own UUID but I just wondering if there was some built-in feature I'd missed

Sep 11, 2020, 9:16 AM

An ID can be any string so just make it something predictable and you can pass it along.

Sep 11, 2020, 9:42 AM

Does it have to be unique across the whole dataset or just within the array of object?

Sep 11, 2020, 9:43 AM

Unique across the dataset I believe. If I’m doing an import I’ll just generate the with the schema hard coded so it’s unique
So if your imported document has a “title” say, make the ID

schema-name-${title}
and then you can generate the same ID again elsewhere in your imports if necessary.

Sep 11, 2020, 9:45 AM

Actually I'm talking about the

_key
that is required when referencing related documents rather than the
_id
of the documents.

Sep 11, 2020, 9:52 AM

(The

_key
only has to be unique within the array itself) 🙂

Sep 11, 2020, 10:06 AM

Thanks Peter, I'll work with that

Sep 11, 2020, 10:06 AM

Sanity.io: Get the most out of your content

Sanity.io is a platform to build websites and applications. It comes with great APIs that let you treat content like data. Give your team exactly what they need to edit and publish their content with the customizable Sanity Studio. Get real-time collaboration out of the box. Sanity.io comes with a hosted datastore for JSON documents, query languages like GROQ and GraphQL, CDNs, on-demand asset transformations, presentation agnostic rich text, plugins, and much more.

Don't compromise on developer experience. Join thousands of developers and trusted companies and power your content with Sanity.io. Free to get started, pay-as-you-go on all plans.