Arangodb-crud-operations
ArangoDB-Crud Operations
この章では、Arangoshのさまざまな操作について学習します。
以下はArangoshで可能な操作です-
- ドキュメントコレクションの作成
- ドキュメントを作成する
- 文書を読む
- ドキュメントの更新
新しいデータベースを作成することから始めましょう。 新しいデータベースを作成するには、次のコード行を使用します-
127.0.0.1:8529@_system> db._createDatabase("song_collection")
true
次のコード行は、新しいデータベースへの移行に役立ちます-
127.0.0.1:8529@_system> db._useDatabase("song_collection")
true
プロンプトは「@@ song_collection」に移行します
127.0.0.1:8529@song_collection>
ここから、CRUD操作について学習します。 新しいデータベースにコレクションを作成しましょう-
127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')
出力
[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>
「songs」コレクションにいくつかのドキュメント(JSONオブジェクト)を追加しましょう。
次の方法で最初のドキュメントを追加します-
127.0.0.1:8529@song_collection> db.songs.save({title: "A Man's Best Friend",
lyricist: "Johnny Mercer", composer: "Johnny Mercer", Year: 1950, _key:
"A_Man"})
出力
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVClbW---"
}
データベースに他のドキュメントを追加しましょう。 これは、データを照会するプロセスを学習するのに役立ちます。 あなたはこれらのコードをコピーしてプロセスをエミュレートするためにArangoshに同じものを貼り付けることができます-
127.0.0.1:8529@song_collection> db.songs.save(
{
title: "Accentchuate The Politics",
lyricist: "Johnny Mercer",
composer: "Harold Arlen", Year: 1944,
_key: "Accentchuate_The"
}
)
{
"_id" : "songs/Accentchuate_The",
"_key" : "Accentchuate_The",
"_rev" : "_VjVDnzO---"
}
127.0.0.1:8529@song_collection> db.songs.save(
{
title: "Affable Balding Me",
lyricist: "Johnny Mercer",
composer: "Robert Emmett Dolan",
Year: 1950,
_key: "Affable_Balding"
}
)
{
"_id" : "songs/Affable_Balding",
"_key" : "Affable_Balding",
"_rev" : "_VjVEFMm---"
}
文書の読み方
*_key* またはドキュメントハンドルを使用して、ドキュメントを取得できます。 コレクション自体を走査する必要がない場合は、ドキュメントハンドルを使用します。 あなたがコレクションを持っている場合、ドキュメント機能は使いやすいです-
127.0.0.1:8529@song_collection> db.songs.document("A_Man");
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVClbW---",
"title" : "A Man's Best Friend",
"lyricist" : "Johnny Mercer",
"composer" : "Johnny Mercer",
"Year" : 1950
}
ドキュメントを更新する方法
保存されたデータを更新するには、 replace と update の2つのオプションを使用できます。
更新機能はドキュメントにパッチを適用し、指定された属性とマージします。 一方、置換機能は、以前のドキュメントを新しいドキュメントに置き換えます。 完全に異なる属性が指定されていても、置換は引き続き行われます。 最初に非破壊的な更新を確認し、歌の属性Production`を更新します-
127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});
出力
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVOcqe---",
"_oldRev" : "_VjVClbW---"
}
今、更新された曲の属性を読んでみましょう-
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
出力
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVOcqe---",
"title" : "A Man's Best Friend",
"lyricist" : "Johnny Mercer",
"composer" : "Johnny Mercer",
"Year" : 1950,
"production" : "Top Banana"
}
大きな属性のドキュメントは、特に属性が非常に少ない場合、 update 関数を使用して簡単に更新できます。
対照的に、 replace 関数は、同じドキュメントで使用する際のデータを廃止します。
127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});
今、次のコード行で更新したばかりの曲をチェックしましょう-
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
出力
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVRhOq---",
"production" : "Top Banana"
}
これで、ドキュメントに元のデータがなくなったことを確認できます。
ドキュメントを削除する方法
削除機能は、コレクションからドキュメントを削除するためにドキュメントハンドルと組み合わせて使用されます-
127.0.0.1:8529@song_collection> db.songs.remove('A_Man');
次のコード行を使用して、削除したばかりの曲の属性を確認しましょう-
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
次のような例外エラーが出力として取得されます-
JavaScript exception in file
'/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js' at 97,7:
ArangoError 1202: document not found
! throw error;
! ^
stacktrace: ArangoError: document not found
at Object.exports.checkRequestResult
(/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js:95:21)
at ArangoCollection.document
(/usr/share/arangodb3/js/client/modules/@arangodb/arango-collection.js:667:12)
at <shell command>:1:10