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 – build remarkable experiences at scale

Sanity is a customizable solution that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Categorized in