$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()
=$input.all()
นับจำนวน items ทั้งหมดเพื่อ validation หรือ progress tracking
ทำ aggregation เช่น sum, average, min, max ของฟิลด์จากทุก items
Filter และ transform ข้อมูลทั้งหมดก่อนส่งต่อ
สร้าง summary report จากข้อมูลหลาย items
Batch processing ที่ต้องเห็นภาพรวมข้อมูลก่อนประมวลผล
{{ $input.all().length }}={{ $input.all().length }}
5
{{ $input.all().map(item => item.json.price) }}={{ $input.all().map(item => item.json.price) }}
[100, 200, 150]
{{ $input.all().map(item => item.json.amount).sum() }}={{ $input.all().map(item => item.json.amount).sum() }}
450
{{ $input.all().filter(item => item.json.status === 'active') }}={{ $input.all().filter(item => item.json.status === 'active') }}
[{...}, {...}]
$json เข้าถึงเฉพาะ item ปัจจุบันที่กำลัง process (single item) ส่วน $input.all() ดึงทุก items มาเป็น array พร้อมกัน (all items) ใช้ $json เมื่อประมวลผลแบบ item-by-item ใช้ $input.all() เมื่อต้องการเห็นข้อมูลทั้งหมด
ใช้ _input.all() (ขีดล่างแทนดอลลาร์) และไม่ต้องใส่วงเล็บ เพราะเป็น property ไม่ใช่ method ใน Python เช่น items = _input.all()
ถ้ามีหลักพัน items อาจใช้ memory มาก แนะนำใช้ Loop Over Items node แทนเพื่อ process แบบ batch หรือใช้ในกรณีที่จำเป็นต้องเห็นข้อมูลทั้งหมดจริงๆ เท่านั้น
ได้ โดยใช้ map() หรือ filter() ต่อท้าย แล้ว return array ใหม่ แต่ควรทำใน Code node มากกว่าใน expressions ถ้าเป็น logic ซับซ้อน เพราะอ่านและ maintain ง่ายกว่า
เทคนิคสำคัญ: $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 รับเข้ามา