2015-01-05 6 views
2

AQL을 사용하여 문서를 컬렉션에 삽입하면 빈 목록이 반환됩니다.단일 AQL 쿼리에 문서를 삽입하여 반환

arangosh [test]> db._query('INSERT @document INTO vertices', {document: {name: "bar"}}).toArray() 
[ ] 

단일 AQL 쿼리에서 문서를 삽입하고 전체 문서를 다시 가져 오는 방법이 있습니까?

내가 돌아 오기를 바라고 있어요 것은 :이 기능이 구현

{ 
    "_id": "vertices/641272433780", 
    "_key": "641272433780", 
    "_rev": "641272433780", 
    "name": "bar" 
} 
+0

우리는 현재이 작업을하고 있지만 (AQL 데이터 수정 작업에서 전체 문서를 반환하고 있습니다), 아직 기능이 완료되지 않았습니다. 나는 소식이있을 때 여기에 올릴 수있다. – stj

+0

큰 소리로 들으세요! 하위 쿼리에서 데이터 수정 작업을 허용 할 계획이 있습니까? – mikewilliamson

+0

AQL에서 엄청난 변화가 필요하기 때문에 지금은 아닙니다. – stj

답변

1

되면, 그 그렇게 보이는 것 :

INSERT expression IN|INTO collection [ OPTIONS expression ] WITH NEW INTO variable RETURN variable; 

REMOVE expression IN|INTO collection [ OPTIONS expression ] WITH OLD INTO variable RETURN variable; 

UPDATE expression IN|INTO collection [ OPTIONS expression ] WITH OLD|NEW INTO variable RETURN variable 
UPDATE expression WITH expression IN|INTO collection [ OPTIONS expression ] WITH OLD|NEW INTO variable RETURN variable 

`

+0

이전 버전과 새로운 버전을 가져 오기 위해'BOTH' 가상 변수를 사용할 지 궁금합니다 ... – CoDEmanX

+0

이것은 ArangoDB 2.4에서 구현 된 것으로 보입니다 : http://jsteemann.github.io/blog/2015/01/13/returns-results-a-a-insert-update-remove-operations / – mikewilliamson

3

이 ArangoDB 때문에 가능하다 2.4. 생성 된 문서 원래 쿼리

INSERT @document INTO vertices 

를 반환하는 것은 또한/다중 문서 INSERT들과 또한 UPDATE 작동 교체 및 제거

INSERT @document INTO vertices LET result = NEW RETURN result 

이로 변경해야합니다. 즉시 의사의 값 중 하나를 할당하는 LET 문 와야합니다

는, 데이터 - 수정 쿼리에서 INSERT를 문서를 반환 REMOVE, UPDATE 또는 문을 교체하려면 다음 2.4 documentation의 다음 인용 구문에 대해 설명합니다 NEW 또는 OLD를 사용자 정의 변수로 변경하십시오. LET 문 다음에 LET에 의해 도입 된 변수를 리턴하는 RETURN 문이 와야합니다.

NEW는 삽입 또는 수정 된 문서 개정을 나타내며 OLD는 업데이트 또는 제거 전에 문서 개정을 나타냅니다. INSERT 문은 NEW 의사 값만 참조 할 수 있으며 OLD에만 REMOVE 작업을 허용합니다. UPDATE 및 REPLACE는 둘 중 하나를 참조 할 수 있습니다.