ArangoDB - Crud İşlemleri
Bu bölümde, Arangosh ile farklı işlemleri öğreneceğiz.
Aşağıdakiler Arangosh ile olası işlemlerdir -
- Bir Belge Koleksiyonu Oluşturma
- Belgelerin Oluşturulması
- Belgeleri Okuma
- Belgeleri Güncelleme
Yeni bir veritabanı oluşturarak başlayalım. Yeni bir veritabanı oluşturmak için aşağıdaki kod satırını kullanacağız -
127.0.0.1:8529@_system> db._createDatabase("song_collection")
true
Aşağıdaki kod satırı, yeni veritabanına geçmenize yardımcı olacaktır -
127.0.0.1:8529@_system> db._useDatabase("song_collection")
true
İstem "@@ song_collection" olarak değiştirilecektir
127.0.0.1:8529@song_collection>
Buradan CRUD İşlemlerini inceleyeceğiz. Yeni veritabanına bir koleksiyon oluşturalım -
127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')
Çıktı
[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>
'Şarkılar' koleksiyonumuza birkaç belge (JSON nesneleri) ekleyelim.
İlk belgeyi şu şekilde ekliyoruz -
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"})
Çıktı
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVClbW---"
}
Veritabanına başka belgeler ekleyelim. Bu, verileri sorgulama sürecini öğrenmemize yardımcı olacaktır. İşlemi taklit etmek için bu kodları kopyalayıp aynısını Arangosh'a yapıştırabilirsiniz -
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---"
}
Belgeler Nasıl Okunur
_keyveya belge tutacağı bir belgeyi almak için kullanılabilir. Koleksiyonun kendisini geçmeye gerek yoksa belge tutamacını kullanın. Bir koleksiyonunuz varsa, belge işlevinin kullanımı kolaydır -
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
}
Belgeler Nasıl Güncellenir
Kaydedilen verileri güncellemek için iki seçenek mevcuttur - replace ve update.
Güncelleme işlevi bir belgeye yama uygular ve onu verilen özniteliklerle birleştirir. Öte yandan, değiştirme işlevi önceki belgeyi yenisiyle değiştirecektir. Tamamen farklı öznitelikler sağlanmış olsa bile değiştirme yine de gerçekleşecektir. Önce tahribatsız bir güncelleme gözlemleyeceğiz, bir şarkıda Prodüksiyon özelliğini güncelleyeceğiz -
127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});
Çıktı
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVOcqe---",
"_oldRev" : "_VjVClbW---"
}
Şimdi güncellenmiş şarkının niteliklerini okuyalım -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Çıktı
{
"_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"
}
Büyük bir belge, aşağıdakilerle kolayca güncellenebilir: update işlev, özellikle öznitelikler çok az olduğunda.
Aksine, replace işlevi, verilerinizi aynı belge ile kullanırken ortadan kaldıracaktır.
127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});
Şimdi yeni güncellediğimiz şarkıyı aşağıdaki kod satırıyla kontrol edelim -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Çıktı
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVRhOq---",
"production" : "Top Banana"
}
Şimdi, belgenin artık orijinal verilere sahip olmadığını gözlemleyebilirsiniz.
Belgeler Nasıl Kaldırılır
Kaldırma işlevi, bir belgeyi bir koleksiyondan çıkarmak için belge tutamacıyla birlikte kullanılır -
127.0.0.1:8529@song_collection> db.songs.remove('A_Man');
Şimdi, aşağıdaki kod satırını kullanarak kaldırdığımız şarkının niteliklerini kontrol edelim -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Çıktı olarak aşağıdaki gibi bir istisna hatası alacağız -
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