Thep Excel

$input.all() – Method ที่ดึง input items ทั้งหมดมาเป็น array สำหรับ batch processing

$input.all() เป็น method ที่ดึง input items ทั้งหมดมาในครั้งเดียวเป็น array ใช้เมื่อต้องการประมวลผลหลาย items พร้อมกัน ทำ aggregation เช่น sum, average, หรือต้องการเข้าถึงข้อมูลทั้งหมดก่อนทำ transformation ต่างจาก $json ที่เข้าถึงเฉพาะ item ปัจจุบัน $input.all() ให้ภาพรวมของข้อมูลทั้งหมด สามารถใช้ array methods เช่น map, filter, reduce ได้ทันที เหมาะกับงาน batch processing และ data analysis

=$input.all()

By ThepExcel AI Agent
16 December 2025

Function Metrics


Popularity
9/10

Difficulty
3/10

Usefulness
9/10

Syntax & Arguments

=$input.all()

How it works

นับจำนวน items ทั้งหมดเพื่อ validation หรือ progre…

นับจำนวน items ทั้งหมดเพื่อ validation หรือ progress tracking

ทำ aggregation เช่น sum, average, min, max ของฟิลด…

ทำ aggregation เช่น sum, average, min, max ของฟิลด์จากทุก items

Filter และ transform ข้อมูลทั้งหมดก่อนส่งต่อ

Filter และ transform ข้อมูลทั้งหมดก่อนส่งต่อ

สร้าง summary report จากข้อมูลหลาย items

สร้าง summary report จากข้อมูลหลาย items

Batch processing ที่ต้องเห็นภาพรวมข้อมูลก่อนประมวล…

Batch processing ที่ต้องเห็นภาพรวมข้อมูลก่อนประมวลผล

Examples

ดูจำนวน items ทั้งหมด
{{ $input.all().length }}
ใช้ .length property เพื่อนับจำนวน items ทั้งหมดที่เข้ามา ใช้บ่อยใน progress tracking และ validation ว่ามีข้อมูลเข้ามากี่รายการ
n8n Formula:

={{ $input.all().length }}

Result:

5

ดึงฟิลด์เดียวจากทุก items
{{ $input.all().map(item => item.json.price) }}
ใช้ map() เพื่อ extract ฟิลด์ price จากทุก items ได้ array ของราคาทั้งหมด pattern นี้ใช้บ่อยมากเมื่อต้องการเอาเฉพาะฟิลด์หนึ่งจากหลาย items
n8n Formula:

={{ $input.all().map(item => item.json.price) }}

Result:

[100, 200, 150]

รวมยอดจากทุก items
{{ $input.all().map(item => item.json.amount).sum() }}
ใช้ map() ดึงฟิลด์ amount แล้วใช้ sum() รวมยอดทั้งหมด pattern นี้เป็นพื้นฐานของ aggregation ใน n8n สำหรับคำนวณยอดรวม ยอดขาย หรือจำนวนทั้งหมด
n8n Formula:

={{ $input.all().map(item => item.json.amount).sum() }}

Result:

450

Filter items ตามเงื่อนไข
{{ $input.all().filter(item => item.json.status === 'active') }}
ใช้ filter() เพื่อคัดเลือกเฉพาะ items ที่ตรงเงื่อนไข ได้ array ของ items ที่ผ่านเงื่อนไขเท่านั้น ใช้ก่อนทำ aggregation หรือ processing ขั้นต่อไป
n8n Formula:

={{ $input.all().filter(item => item.json.status === 'active') }}

Result:

[{...}, {...}]

FAQs

ต่างจาก $json อย่างไร

$json เข้าถึงเฉพาะ item ปัจจุบันที่กำลัง process (single item) ส่วน $input.all() ดึงทุก items มาเป็น array พร้อมกัน (all items) ใช้ $json เมื่อประมวลผลแบบ item-by-item ใช้ $input.all() เมื่อต้องการเห็นข้อมูลทั้งหมด

ใน Python Code node ใช้ยังไง

ใช้ _input.all() (ขีดล่างแทนดอลลาร์) และไม่ต้องใส่วงเล็บ เพราะเป็น property ไม่ใช่ method ใน Python เช่น items = _input.all()

ถ้ามี items จำนวนมากจะช้าไหม

ถ้ามีหลักพัน items อาจใช้ memory มาก แนะนำใช้ Loop Over Items node แทนเพื่อ process แบบ batch หรือใช้ในกรณีที่จำเป็นต้องเห็นข้อมูลทั้งหมดจริงๆ เท่านั้น

สามารถ modify items ได้ไหม

ได้ โดยใช้ map() หรือ filter() ต่อท้าย แล้ว return array ใหม่ แต่ควรทำใน Code node มากกว่าใน expressions ถ้าเป็น logic ซับซ้อน เพราะอ่านและ maintain ง่ายกว่า

Resources & Related

Additional Notes

เทคนิคสำคัญ: $input.all() return array ของ item objects ซึ่งแต่ละ object มี json, binary, และ pairing properties ถ้าต้องการเข้าถึงข้อมูล ต้องใช้ item.json.fieldName ไม่ใช่ item.fieldName โดยตรง สามารถ chain array methods ได้เช่น $input.all().filter().map().sum() แต่ระวังความซับซ้อน ถ้า logic ยาวควรย้ายไป Code node แทน ใช้ร่วมกับ $itemIndex เพื่อติดตามความคืบหน้าด้วย ($itemIndex / $input.all().length * 100) ใน expressions ที่ไม่อยู่ใน loop context จะได้ข้อมูลทั้งหมดที่ node รับเข้ามา

Leave a Reply

Your email address will not be published. Required fields are marked *