Collection metadata

Problem

You need to store additional metadata in a collection document.

Solution

Set the data field in a collection:

try
{
    Value result = await client.Query(
        Update(
            Collection("dilapidated_huts"),
            Obj("data", Obj("env", "test"))
        )
    );
    Console.WriteLine(result);
}
catch (Exception e)
{
    Console.WriteLine($"ERROR: {e.Message}");
}
ObjectV(ref: RefV(id = "dilapidated_huts", collection = RefV(id = "collections")),ts: LongV(1635183024850000),history_days: LongV(30),name: StringV(dilapidated_huts),data: ObjectV(env: StringV(test)))
result, err := adminClient.Query(
	f.Update(
		f.Collection("dilapidated_huts"),
		f.Obj{"data": f.Obj{"env": "test"}},
	))

if err != nil {
	fmt.Fprintln(os.Stderr, err)
} else {
	fmt.Println(result)
}
map[data:map[env:test] history_days:30 name:dilapidated_huts ref:{dilapidated_huts 0xc0001804b0 0xc0001804b0 <nil>} ts:1635183036860000]
System.out.println(
        adminClient.query(
            Update(
                Collection(Value("dilapidated_huts")),
                Obj("data", Obj("env", Value("test")))
            )
        ).get());
{ref: ref(id = "dilapidated_huts", collection = ref(id = "collections")), ts: 1635183075770000, history_days: 30, name: "dilapidated_huts", data: {env: "test"}}
adminClient.query(
  q.Update(
    q.Collection('dilapidated_huts'),
    { data: { env: 'test' } }
  )
)
.then((ret) => console.log(ret))
.catch((err) => console.error(
  'Error: [%s] %s: %s',
  err.name,
  err.message,
  err.errors()[0].description,
))
{
  ref: Collection("dilapidated_huts"),
  ts: 1635183086600000,
  history_days: 30,
  name: 'dilapidated_huts',
  data: { env: 'test' }
}
result = adminClient.query(
  q.update(
    q.collection("dilapidated_huts"),
    {"data": {"env": "test"}}
  )
)
print(result)
{'ref': Ref(id=dilapidated_huts, collection=Ref(id=collections)), 'ts': 1635183090850000, 'history_days': 30, 'name': 'dilapidated_huts', 'data': {'env': 'test'}}
Update(
  Collection('dilapidated_huts'),
  { data: { env: 'test' } }
)
{
  ref: Collection("dilapidated_huts"),
  ts: 1635183253930000,
  history_days: 30,
  name: 'dilapidated_huts',
  data: { env: 'test' }
}
Query metrics:
  •    bytesIn:   99

  •   bytesOut:  186

  • computeOps:    1

  •    readOps:    0

  •   writeOps:    1

  •  readBytes:  227

  • writeBytes:  113

  •  queryTime: 18ms

  •    retries:    0

Discussion

Adding metadata to a collection can be used to store any information that helps to distinguish the collection from other collections.

More information

Was this article helpful? 

We're sorry to hear that.
Tell us how we can improve!
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!