Saya mencoba membuat kueri menggunakan cypher yang akan "Menemukan" bahan yang hilang yang mungkin dimiliki koki, Grafik saya disiapkan seperti ini:
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
akan memiliki kunci / nilai name = "warna pewarna". (ingredient_value)
bisa memiliki kunci / nilai value = "red" dan "adalah bagian dari" the (ingredient, name="dye colors")
.
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
Saya menggunakan kueri ini untuk mendapatkan semua ingredients
, tapi bukan nilai sebenarnya, yang dibutuhkan resep, tapi saya ingin mengembalikan hanya ingredients
yang tidak dimiliki koki, alih-alih semua bahan yang dibutuhkan setiap resep. Saya mencoba
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
tapi ini tidak menghasilkan apa-apa.
Apakah ini sesuatu yang dapat dicapai oleh cypher / neo4j atau apakah ini sesuatu yang paling baik ditangani dengan mengembalikan semua bahan dan menyortirnya sendiri?
Bonus: Juga apakah ada cara untuk menggunakan cypher untuk mencocokkan semua nilai yang dimiliki koki dengan semua nilai yang dibutuhkan resep. Sejauh ini saya hanya mengembalikan semua pertandingan parsial yang dikembalikan oleh chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
dan menggabungkan hasilnya sendiri.