Вложенные документы в FaunaDB

#faunadb

#фаунадб

Вопрос:

Я только начинаю изучать Фауну и FQL. Как мы можем добавить вложенный документ внутри другого документа, используя интерактивную оболочку?

Это то, что у меня есть до сих пор

 users: [
    {
      userID: "from google",
      userName: "from signup form",
      userEmail: "from signup form form",
      profileimgurl: "maybe from google",
      accessCode: 12345,
      role: "main or secondary. customer will automatically become main."
    },
    {
      userID: "from google",
      userName: "from signup form",
      userEmail: "from signup form form",
      profileimgurl: "maybe from google",
      accessCode: 12345,
      role: "main or secondary. customer will automatically become main."
    }
  ]
 

Ответ №1:

Fauna хранит данные в документах без схем, поэтому вы можете вставлять массивы или другие объекты в данные документа. Например, из оболочки:

 Create(
  Collection("users"),
  {
    data: { 
      name: "Paul",
      email: "paul@paul.com
      address: {
        country: "United States",
      },
      tags: ["pinball", "camping"]
    }
  }
)
 

В зависимости от того, как вам необходимо читать и обновлять документы, может оказаться целесообразным сохранить данные в отдельной коллекции и поддерживать связи со ссылками.

 Create(
  Collection("public_profiles"),
  {
    data: { 
      name: "Paul",
      tags: ["pinball", "camping"]
    }
  }
)

{
  ref: Ref(Collection("public_profiles"), "307924242117165124"),
  ts: 1629918291110000,
  data: { name: "Paul", tags: ["pinball", "camping"] }
}
 
 Update(
  Ref(Collection("users"), "307924248572638574"),
  {
    data: { 
      tags: null,
      profile: Ref(Collection("public_profiles"), "307924242117165124")
    }
  }
)
 

В документах есть пример социального графа, который демонстрирует, как создавать отношения и запрашивать их.