ค้นหาการจัดเรียง กรอง จำกัด และวนซ้ำอาร์เรย์ของออบเจ็กต์ในรูปแบบ Mongo
ใน NodeJS :
npm install faltu --save
สำหรับโปรเจ็กต์อื่นๆ เพียงดาวน์โหลดและรวมไฟล์ไว้ในเพจของคุณ:
< script src =" faltu.min.js " > </ script >
ข้อมูลทั้งหมดที่ส่งผ่านคาดว่าจะเป็นอาร์เรย์หรืออ็อบเจ็กต์
เช่น:
[array, array, ..., array]
ข้อมูลทั้งหมดที่ส่งคืนก็เป็นข้อมูลประเภทเดียวกันด้วย
ตัวอย่างเช่น:
var data = [ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ] ;
ส่งผ่านอาร์เรย์ไปยังตัวสร้าง:
ใน NodeJS :
var Faltu = require ( 'faltu' ) ;
var faltuData = new Faltu ( data ) ;
ในสภาพแวดล้อมอื่นๆ:
var faltuData = new Faltu ( data ) ;
คุณสามารถใช้วิธี find
ในการค้นหาได้ ค้นหาผู้ชายทุกคนที่อายุ 18 ปี:
var newData = new Faltu ( data ) . find ( {
age : 18
} ) . get ( ) ;
newData
จะมีลักษณะดังนี้:
[ {
name : "Doe" ,
age : 18
} ]
คุณควรเรียก get
ต่อท้ายเสมอถ้าคุณต้องการอาร์เรย์กลับ หรือมันจะส่งคืนอินสแตนซ์ faltu
ค้นหาผู้ชายทุกคนที่มีอายุ 18 ปีขึ้นไป:
var newData = new Faltu ( data ) . find ( {
age : {
$gte : 18 // $gte is similar to >= (greater than or equal to)
}
} ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
ตัวดำเนินการเปรียบเทียบอื่นๆ ที่รองรับใน find
คือ:
$lt
: <$lte
: <=$gt
: >$ne
: !=ค้นหาผู้ชายทุกคนที่มีอายุ 18 หรือ 16 ปี:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} ]
การส่งค่า null
วัตถุว่าง {}
หรือไม่มีอะไรให้ find
หมายความว่าไม่ได้ทำการค้นหาใดๆ find
ยอมรับตัวเลือกเป็นอาร์กิวเมนต์ที่สอง
เช่น:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} , {
sort : {
age : - 1
}
} ) . get ( ) ;
จะส่งคืนข้อมูลตามลำดับ age
จากมากไปหาน้อย นอกเหนือจาก sort
คุณยังสามารถผ่าน:
skip
limit
unique
ใช้ sort
เพื่อเรียงลำดับผลลัพธ์จากมากไปหาน้อยตาม age
:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . sort ( {
age : - 1 // 1 = ASC, -1 = DESC
} ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "John" ,
age : 16
} ]
มารับวัตถุกลับคืนมาเพียง 1 ชิ้น:
var newData = new Faltu ( data ) . find ( ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
ข้ามวัตถุที่ 1 กัน:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
ข้ามวัตถุที่ 1 กัน:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} ]
คุณสามารถส่งคืนผลลัพธ์ที่ไม่ซ้ำด้วยคีย์ได้
var newData = new Faltu ( data ) . find ( ) . unique ( 'age' ) . get ( ) ;
คุณยังสามารถทำการกรอง jQuery
-esque ได้ด้วยตัวเอง วิธี filter
การโทรผ่าน function
var newData = new Faltu ( data ) . find ( ) . filter ( function ( person ) {
return person . age == 16 ; // return true if you want to keep the object
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
each
จะวนซ้ำบันทึกทั้งหมดที่ส่งคืน
var newData = new Faltu ( data ) . find ( null ) . each ( function ( person , index ) {
console . log ( 'User name:' , person . name ) ;
} ) ;