> For the complete documentation index, see [llms.txt](https://docs.ohmyapp.io/main/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohmyapp.io/main/guide/develop_app/command-execute-function/create-logic/conditions/detailed-processing-conditions/setvalue.md).

# @setValue

* 데이터를 저장하고 편집할 때 사용해요.
* 데이터를 단순히 저장하거나, 배열의 요소 중에 가장 처음 데이터를 가져오거나, 배열에 요소를 추가하는 등의 기능을 수행해요. (배열은 같은 타입의 데이터들로 이루어진 유한 집합으로 정의돼요.)
* setValue안에는 Object형태의 데이터가 입력돼요.

> Object 형태의 데이터는 key(이름): value(값) 으로 저장되는 데이터의 형태예요.

* Object에서 key는 tmpDocument에 저장될 이름이에요.
* Object에서 value는 tmpDocument에서 key로 입력한 이름에 실제로 저장될 데이터에 대한 정보예요.

**사용 방법**

<figure><img src="/files/zhQcZJnaPis3nPkfCIy3" alt=""><figcaption></figcaption></figure>

1. 로직 설정 ➡︎ If When, Where에 원하는 값 입력 ➡︎ New data query 를 펼쳐 주세요. &#x20;
2. Event에서 @setValue를 드래그앤드롭하여 원하는 위치(flows, #ifTrue, #ifFalse, @for)에 넣어주세요.

<div align="left"><figure><img src="/files/SDeZLc5pK8jcDHs8msGc" alt="" width="563"><figcaption></figcaption></figure></div>

위의 예시 이미지를 보면&#x20;

1. "value1"이란 key에 "newDocument.title"이라는 value를 저장하였고,&#x20;
2. "listValue"라는 key에는 "preDocument.value2"의 값을 추가하고 있어요.&#x20;
3. "objectValue"라는 key에는 "tmpDocument.listValue"의 첫 번째 값을 저장하고 있어요.&#x20;

**필드 설명**

* \#first (List, 동적 키, 동적 Object) (최종형 List) (필수)&#x20;

  List 의 첫번째 요소를 가져와요.
* \#exception(Object) (선택)&#x20;

  서버에서 처리 중 예외가 발생했을 경우 예외 코드를 따로 설정해요.
* \#add(모든 타입) (필수)&#x20;

  key의 자료형이 List일 경우에만 사용 가능하며 지정된 요소가 List에 들어가요.
* \#deduplicateDocument (List, 동적 키, 동적 Object) (최종형 List) (필수)&#x20;

  자료형이 List이고 내부 데이터들의 자료형이 Document일 경우 \_id를 참조해 중복을 삭제하고 저장해요. **중복 없는 데이터가 반환되기 위해, 반드시 내부 데이터들의 자료형이 Document이고 \_id값을 가지고 있어야 해요.**&#x20;
* \#removeKey (Object) (필수)

  tmpDocumentKey의 자료형이 Object일 경우에만 사용 가능하며 Object 내부의 원하는 key값 쌍을 제거해요.&#x20;

  * base (Object, 동적 키, 동적 Object) (최종형 Object) (필수)&#x20;

    key 를 제거할 대상 Object예요.
  * keys (List) (필수)&#x20;

    제거할 key예요.

2024.01.16 Jinny
