如何增加属性值

时间:2016-05-31 07:41:40

标签: node.js arangodb aql

我在ArangoDb有一个帖子收藏。我有视图属性。当有人查看帖子时我想更新一次。

如何在ArangoDB中使用AQL将视图属性值增加一个。

我已在上面用OrientDb中的以下查询完成。

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

1 个答案:

答案 0 :(得分:3)

您在FILTER之后选择要修改的帖子,在ArangoDB using the UPDATE statement中实现此目的:

让我们用一些文档创建一个集合:

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 
  } 
]