2

ArangoDb に Posts コレクションがあります。ビュー属性があります。誰かが投稿を閲覧したら、1つ更新したい。

ArangoDB で AQL を使用してビューの属性値を 1 ずつインクリメントする方法を教えてください。

OrientDb で以下のクエリを実行しました。

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

1 に答える 1

3

ArangoDB でこれを行うには、変更したい投稿を選択するために a の後に UPDATE ステートメントを使用します。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]

すべてが適切に機能することがわかったので、update ステートメントを次のように記述します。

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 
  } 
]
于 2016-05-31T09:32:44.707 に答える