2016년 12월 20일 화요일

Document CRUD - Create

Tags

Document CRUD

Insert

  • collection.insert(data, option)
data는 object여야 하고, _id, _rev값은 무시되고 ArangoDB가 자동으로 생성된 값을 넣는다. _key값이 주어지지 않으면 자동 생성한다. 만약 _key값이 주어지면 collection내에서 유일한 값이어야 한다.
insert후 _id, _key, _rev값이 리턴된다.
arangosh> db.example.insert({ Hello : "World" });
{ 
  "_id" : "example/14800", 
  "_key" : "14800", 
  "_rev" : "_UOasXsi---" 
}
arangosh> db.example.insert({ Hello : "World" }, {waitForSync: true});
{ 
  "_id" : "example/14804", 
  "_key" : "14804", 
  "_rev" : "_UOasXsi--_" 
}

  존재하는 _key인 336846을 직접 지정해서 insert에 실패했다.
 _id를 직접 지정해도 무시된다

 없는 key를 지정하면 해당 key로 insert에 성공한다

option은 다음 항목이 있다.
  • waitForSync(boolean)
  • silent(boolean, >= 3.0) : true일 경우 insert 후 아무것도 리턴하지 않는다.
  • returnNew(boolean, >=3.0) : true일 경우 return되는 값의 new 필드에 생성된 값을 넣고 이 document를 반환한다.
 silent = true일 경우 _key, _id, _rev값이 반환되지 않는다.
 returnNew를 true로 할 경우, new 필드에 insert된 document를 포함하여 리턴한다.

참고) ArangoDB 2.2이후부터 insert는 save의 alias이다.

ArangoDB3.0부터는 data에 array가 허용된다.
  • collection.insert(array, options)
arangosh> db.example.insert([{ Hello : "World" }, {Hello: "there"}])
[ 
  { 
    "_id" : "example/14781", 
    "_key" : "14781", 
    "_rev" : "_UOasXra---" 
  }, 
  { 
    "_id" : "example/14785", 
    "_key" : "14785", 
    "_rev" : "_UOasXra--_" 
  } 
]
이 경우 모든 document array가 insert되고, 그에 따른 모든 결과가 반환된다. 만약 에러가 발생하면 에러가 발생한 object는 error object가 반환된다.

 3개의 object를 insert하는데 두 번째 것이 이미 존재하는 _key여서 해당 object만 error를 리턴한다.


EmoticonEmoticon

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)