নিও 4 জে আইডি দিয়ে নোড পান


85

আমি আমার একটি প্রকল্পের জন্য নিও 4j ব্যবহার করছি, একটি নোড রয়েছে যার কেবলমাত্র একক সম্পত্তি রয়েছে name, আমি আইডি ব্যবহার করে সেই নোডটি পেতে চাই, এটির একটি আইডি আছে তবে আমি এই কোডটি ব্যবহার করি যখন

MATCH (s:SKILLS{ID:65110}) return s

এটি কিছুই ফেরায় না, আমার নোডটি এখানে

এখানে চিত্র বর্ণনা লিখুন

যদি কোয়েরিটি ভুল হয় তবে সংখ্যাটি ব্যবহার করে আমি কীভাবে এটি জিজ্ঞাসা করব


আপনি কোন গ্রাফ ভিজুয়ালাইজিং সরঞ্জামটি ব্যবহার করেন? ধন্যবাদ আমি yworks.com/neo4j- এক্সপ্লোরার কাস্টমাইজেশনের জন্য ভাল বিকল্প জানি ।
MyUserInStackOverflow

উত্তর:


140
MATCH (s)
WHERE ID(s) = 65110
RETURN s

IDফাংশন আপনি একটি নোড বা সম্পর্কের আইডি পায়। এটি যে কোনও সম্পত্তি বলা idবা IDআপনার তৈরি করা থেকে পৃথক।


4
এর মতো ডেটা পাওয়ার কোনও আলাদা উপায় আছে কি (গুলি: সামেলবেল আইডি: 65110})?
গাধা কং

@ ডনকিং না, কারণ আপনি আইডি সম্পত্তি যুক্ত করতে পারেন, যা আইডি ছাড়া অন্য কিছু। কোনও আইডি বৈশিষ্ট্যে কোনও প্রকার থাকতে পারে, নোড বা প্রান্ত আইডি একটি স্বাক্ষরবিহীন পূর্ণসংখ্যার, Neo4J এর অভ্যন্তরীণ কাঠামোর কোনও অবস্থানের সাথে যুক্ত।
pvoosten

25
স্ট্যান্ডার্ড অস্বীকৃতি: দীর্ঘমেয়াদী সত্তা সনাক্তকরণের জন্য অভ্যন্তরীণ Neo4j আইডি ব্যবহার করবেন না। Neo4j এর ভবিষ্যতের সংস্করণগুলি এই আইডিগুলি পারফরম্যান্সের উদ্দেশ্যে বদলে দিতে পারে। CONSTRAINTসত্ত্বা ট্র্যাকিংয়ের জন্য আপনার নিজস্ব অনন্য আইডি সম্পত্তি (আদর্শভাবে একটি ) তৈরি করুন
ব্রায়ান আন্ডারউড

কেউ আগ্রহী হলে সরকারী সাইফারের ডকুমেন্টেশন অনুচ্ছেদ যুক্ত করা হচ্ছে: neo4j.com
ডকস

13

সতর্কতা: নিম্নলিখিত উত্তরটি ভুল! উত্তরাধিকার সূচকগুলিতে অ্যাক্সেস করার সময় কেবল START ব্যবহার করা উচিত । এটি সাইফার ২.২ এবং তারপরে অক্ষম

নিও 4 জ ব্যবহার করার পরামর্শ দেয়WHERE ID(n) = এবং আরও উল্লেখ করে যে এটির জন্য কেবল একটি একক প্রয়োজন (ম্যাচিং আইডি সন্ধানের জন্য প্রতিটি নোড স্ক্যান করে না)

যে কেউ একই ভুল হতে আটকাতে এই উত্তরটি রাখা।

আপনি ব্যবহার করতে পারেন WHERE ID(s) = 65110তবে এটি আপনার ডাটাবেসের প্রতিটি নোডের আইডি চেক করবে।

এটি করার আরও কার্যকর উপায় রয়েছে:

START s=NODE(517) MATCH(s) RETURN s

একটি সাধারণ ক্যোয়ারির জন্য এক্সপ্ল্লেইন এবং প্রোফাইলে প্রাপ্ত ফলাফলগুলি আমাকে দেখিয়েছিল যে @ কোড ভাল ছিল। এটি ডক্সে নেই কেন?
সোনাটা

@ সোনাটা আপনি কোন সংস্করণটি চালাচ্ছেন? Neo4j এর নতুন সংস্করণগুলি START অচল করে দেওয়া উচিত।
কোডব্লিং

3.0.7। কটাক্ষপাত আছে Result Detailsকনসোলে এই উদাহরণ থেকে: console.neo4j.org/r/dbz1we (একটি AllNodesScan করছেন) এবং console.neo4j.org/r/9076wd (ক NodeById করছেন)
যন্ত্রসঙ্গীতবিশেষ

@ সোনাটা আমি নিশ্চিত নই কেন এটি হচ্ছে। প্রথমত, এটি কাজ করা উচিত নয় - ডক্সে বলা হয়েছে যে START সাইফার ২.০ হিসাবে অবচিত এবং সাইফার ২.২ হিসাবে অক্ষম, তবে এটি স্পষ্টভাবে এখনও কাজ করছে। দ্বিতীয়ত, আইডি সহ ম্যাচটি +NodeByIdSeekকেবলমাত্র 1 টি নোডের অ্যাক্সেস হওয়া উচিত তবে কোনও কারণে এটি একটি করছে +AllNodesScan
কোডবলিং

4

তুমি বলতে পারো:

(n:User) where id(n) >=20 RETURN n

এটি 20 টিরও বেশি নোড রেফারেন্স আইডি সহ সমস্ত ধরণের নোডকে ফিরিয়ে দেবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.