ArangoDB - Hoạt động thô sơ

Trong chương này, chúng ta sẽ tìm hiểu các hoạt động khác nhau với Arangosh.

Sau đây là các thao tác có thể thực hiện với Arangosh:

  • Tạo bộ sưu tập tài liệu
  • Tạo tài liệu
  • Đọc tài liệu
  • Cập nhật tài liệu

Hãy để chúng tôi bắt đầu bằng cách tạo một cơ sở dữ liệu mới. Chúng tôi sẽ sử dụng dòng mã sau để tạo cơ sở dữ liệu mới:

127.0.0.1:8529@_system> db._createDatabase("song_collection")
true

Dòng mã sau sẽ giúp bạn chuyển sang cơ sở dữ liệu mới:

127.0.0.1:8529@_system> db._useDatabase("song_collection")
true

Lời nhắc sẽ chuyển thành "@@ song_collection"

127.0.0.1:8529@song_collection>

Từ đây chúng ta sẽ nghiên cứu về Hoạt động CRUD. Hãy để chúng tôi tạo một bộ sưu tập vào cơ sở dữ liệu mới -

127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')

Đầu ra

[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>

Hãy để chúng tôi thêm một vài tài liệu (đối tượng JSON) vào bộ sưu tập 'bài hát' của chúng tôi.

Chúng tôi thêm tài liệu đầu tiên theo cách sau:

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"})

Đầu ra

{
   "_id" : "songs/A_Man",
   "_key" : "A_Man",
   "_rev" : "_VjVClbW---"
}

Hãy để chúng tôi thêm các tài liệu khác vào cơ sở dữ liệu. Điều này sẽ giúp chúng ta tìm hiểu quá trình truy vấn dữ liệu. Bạn có thể sao chép các mã này và dán mã tương tự vào Arangosh để mô phỏng quá trình -

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

Cách đọc tài liệu

Các _keyhoặc tay cầm tài liệu có thể được sử dụng để truy xuất tài liệu. Sử dụng tay cầm tài liệu nếu không cần phải duyệt qua chính bộ sưu tập. Nếu bạn có một bộ sưu tập, chức năng tài liệu rất dễ sử dụng -

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
}

Cách cập nhật tài liệu

Hai tùy chọn có sẵn để cập nhật dữ liệu đã lưu - replaceupdate.

Chức năng cập nhật vá một tài liệu, hợp nhất nó với các thuộc tính đã cho. Mặt khác, chức năng thay thế sẽ thay thế tài liệu trước đó bằng tài liệu mới. Việc thay thế sẽ vẫn diễn ra ngay cả khi các thuộc tính hoàn toàn khác được cung cấp. Đầu tiên chúng ta sẽ quan sát một bản cập nhật không phá hủy, cập nhật thuộc tính Production` trong một bài hát -

127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});

Đầu ra

{
   "_id" : "songs/A_Man",
   "_key" : "A_Man",
   "_rev" : "_VjVOcqe---",
   "_oldRev" : "_VjVClbW---"
}

Bây giờ chúng ta hãy đọc các thuộc tính của bài hát được cập nhật -

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Đầu ra

{
   "_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"
}

Một tài liệu lớn có thể được cập nhật dễ dàng với update chức năng, đặc biệt khi các thuộc tính rất ít.

Ngược lại, replace chức năng sẽ hủy bỏ dữ liệu của bạn khi sử dụng nó với cùng một tài liệu.

127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});

Bây giờ chúng ta hãy kiểm tra bài hát mà chúng ta vừa cập nhật với dòng mã sau:

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Đầu ra

{
   "_key" : "A_Man",
   "_id" : "songs/A_Man",
   "_rev" : "_VjVRhOq---",
   "production" : "Top Banana"
}

Bây giờ, bạn có thể quan sát rằng tài liệu không còn dữ liệu ban đầu.

Cách xóa tài liệu

Chức năng loại bỏ được sử dụng kết hợp với xử lý tài liệu để xóa tài liệu khỏi bộ sưu tập -

127.0.0.1:8529@song_collection> db.songs.remove('A_Man');

Bây giờ chúng ta hãy kiểm tra các thuộc tính của bài hát mà chúng ta vừa xóa bằng cách sử dụng dòng mã sau:

127.0.0.1:8529@song_collection> db.songs.document('A_Man');

Chúng tôi sẽ nhận được một lỗi ngoại lệ như sau dưới dạng đầu ra:

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