0

I have this JSON document:

{
  userId: xx,
  followedAuthors: [
    { authorId: abc, timestamp: 123 },
    { authorId: xyz, timestamp: 456 },
  ]
}

When a user want to follow an author I would like to write a query that check if that author is already followed, checking the id, and if it's not append the new followed author to the array.

Right now I create everytime a new entry. This is my query:

r.table('users')
 .get(userId)
 .replace(user => {
   return user.merge({
     followedTopics: user('followedTopics')
        .default([])
        .setInsert({ topic: topic, timestamp: now }),
     })
  })
Tres
  • 571
  • 1
  • 5
  • 19

1 Answers1

0

The best way to implement this is to use contains (using a predicate function), branch, and append.

Sam Hughes
  • 89
  • 2