MATCH
Cy Cypher pernyataan memungkinkan Anda untuk menemukan data yang cocok dengan kriteria yang diberikan. Anda dapat menggunakan MATCH
untuk mengembalikan data atau untuk melakukan beberapa operasi lain di atasnya.
MATCH
pernyataan digunakan untuk mencocokkan kriteria yang diberikan, tetapi sebenarnya tidak mengembalikan data. Untuk mengembalikan data apa pun dari MATCH
pernyataan, kita masih perlu menggunakan RETURN
klausa.
Ambil Node
Berikut adalah contoh sederhana menggunakan MATCH
pernyataan untuk mengambil simpul:
MATCH (p:Person) WHERE p.Name = "Devin Townsend" RETURN p
WHERE
klausa bekerja dengan cara yang sama seperti SQL WHERE
klausa, yang memungkinkan Anda untuk mempersempit hasil dengan memberikan kriteria tambahan.
Namun, Anda dapat mencapai hasil yang sama tanpa menggunakan WHERE
ayat. Anda juga dapat mencari node dengan memberikan notasi yang sama dengan yang Anda gunakan untuk membuat node.
Kode berikut memberikan hasil yang sama dengan pernyataan di atas:
MATCH (p:Person {Name: "Devin Townsend"}) RETURN p
Menjalankan salah satu dari kueri di atas akan menghasilkan simpul berikut yang ditampilkan:
Anda mungkin telah memperhatikan bahwa mengeklik sebuah simpul akan memperluas lingkaran luar yang dipisahkan menjadi tiga bagian — masing-masing mewakili opsi yang berbeda:
Mengklik bagian bawah akan memperluas hubungan simpul:
Hubungan
Anda juga dapat melintasi hubungan dengan MATCH
penyataan. Faktanya, ini adalah salah satu keunggulan Neo4j.
Misalnya, jika kita ingin mengetahui artis mana yang merilis album berjudul Berat sebagai Benda yang Sangat Berat , kita dapat menggunakan kueri berikut:
MATCH (a:Artist)-[:RELEASED]->(b:Album) WHERE b.Name = "Heavy as a Really Heavy Thing" RETURN a
Ini akan mengembalikan simpul berikut:
Anda dapat melihat bahwa pola yang kami gunakan di MATCH
pernyataan hampir cukup jelas. Ini cocok dengan semua artis yang merilis album dengan nama Berat sebagai Hal yang Sangat Berat .
Kami menggunakan variabel (yaitu a
dan b
) sehingga kami dapat merujuknya nanti dalam kueri. Kami tidak memberikan variabel apa pun untuk hubungan tersebut, karena kami tidak perlu merujuk ke hubungan nanti dalam kueri.
Anda mungkin juga memperhatikan bahwa baris pertama menggunakan pola yang sama yang kita gunakan untuk membuat hubungan di tempat pertama. Ini menyoroti kesederhanaan bahasa Cypher. Kita dapat menggunakan pola yang sama dalam konteks yang berbeda (yaitu untuk membuat data dan mengambil data).
Kembalikan semua Node
Anda dapat mengembalikan semua node dalam database hanya dengan menghilangkan detail pemfilteran apa pun. Oleh karena itu, kueri berikut akan mengembalikan semua node dalam database:
MATCH (n) RETURN n
Ini menghasilkan semua node kami dikembalikan:
Anda juga dapat mengklik Baris ikon di samping untuk menampilkan data dalam format baris:
Hati-hati saat mengembalikan semua node. Melakukan ini pada database besar dapat memiliki implikasi kinerja yang besar. Biasanya disarankan untuk membatasi hasil untuk menghindari masalah yang tidak diinginkan.
Lihat "Membatasi Hasil" di bawah.
Batasi Hasil
Gunakan LIMIT
untuk membatasi jumlah record dalam output. Sebaiknya gunakan ini saat Anda tidak yakin seberapa besar hasil yang akan dihasilkan.
Jadi kita cukup menambahkan LIMIT 5
ke pernyataan sebelumnya untuk membatasi output menjadi 5 record:
MATCH (n) RETURN n LIMIT 5