2016-05-31 3 views
2

У меня есть коллекция сообщений в ArangoDb. У меня есть атрибут views. Я хочу обновить его, когда кто-то просмотрит сообщение.Как увеличить значение атрибута

Как я могу увеличить значение атрибута views на AQL в ArangoDB.

Я сделал выше с нижестоящим запросом в OrientDb.

update posts INCREMENT views = 1 where @rid = '#10:12' 

ответ

3

Это достигается в ArangoDB using the UPDATE statement после FILTER, чтобы выбрать запись, которую хотите изменить:

Позволяет создать коллекцию с некоторыми документами:

db._create('posts') 
db.posts.save({views: 1, rid: '#10:12'}) 
db.posts.save({views: 1, rid: '#11:12'}) 

Сначала мы перепроверить наше FILTER состояние :

db._query(`FOR post IN posts FILTER post.rid == '#10:12' RETURN post`).toArray() 
[ 
    { 
    "_key" : "1282487", 
    "_id" : "posts/1282487", 
    "_rev" : "1282806", 
    "rid" : "#10:12", 
    "views" : 1 
    } 
] 

Мы перепроверьте для арифметических вычислений:

db._query(`FOR post IN posts FILTER post.rid == '#10:12' 
      RETURN post.views + 1`).toArray() 
[1] 

Теперь мы знаем, все работает правильно, мы фразу оператор обновления:

db._query(`FOR post IN posts FILTER post.rid == '#10:12' 
      UPDATE post WITH {views: post.views + 1} IN posts`) 
db.posts.toArray() 
[ 
    { 
    "_key" : "1282487", 
    "_id" : "posts/1282487", 
    "_rev" : "1282806", 
    "rid" : "#10:12", 
    "views" : 2 
    } 
] 
Смежные вопросы