I am testing out Convex by building a notes app, in which notes and topics have a M:M relationship. Are there good examples or suggested best practices for implementing this? The only thing I've seen is the convex demos example - https://github.com/get-convex/convex-demos/tree/main/relational-data-modeling, which is quite basic. I also looked in the docs but didn't see anything. Here are a couple examples of what I'd be interested in seeing examples of:
- Create a topic and associate with a note.
- Query a note and get associated topics.
(several more but just focusing on those for now)
Here is my current schema:
export default defineSchema({
notes: defineTable({
content: v.optional(v.string()),
ownerId: v.string(),
title: v.string(),
topics: v.array(v.id("topics")),
}),
topics: defineTable({
ownerId: v.string(),
title: v.string(),
}),
});
Is using an array of topic ids the correct way to go to make the association? When querying a note, how would I then collect and return the topics? I tried looping through each topic in the topic array and then doing a get on each topic but that did not work.
Any tips or insights would be appreciated!
Thanks!