এই অধ্যায়টি তুলেছে কীভাবে MongoDB জিওস্পেশিয়াল ডেটা সংরক্ষণ করে। MongoDB এর জিওস্পেশিয়াল প্রশ্নবিচারের কার্যকলাপ ব্যবহার করতে আমাদের প্রথমে জিওস্পেশিয়াল ডেটা সংরক্ষণের কীভাবে বোঝা প্রয়োজন।
জিওস্পেশিয়াল ডেটা প্রধানত পয়েন্ট, লাইন, এবং জ্যামিতিক আকৃতিগুলি থাকে।
নক্শা উপরে একটি পয়েন্টের স্থান তার দ্রাঘিমাংশ এবং অক্ষাংশ কো-অর্থ করে। একাধিক পয়েন্ট একটি লাইন তৈরি করে, এবং একাধিক লাইন বিভিন্ন আকৃতি তৈরি করতে পারে।
ব্যাবহারিক বাস্তবায়নে: একটি দোকানের অবস্থান, "আমি কোথায়?", এবং "স্কুল কোথায়?" সবকিছুই নক্ষায় প্রতিষ্ঠিত করা যেতে পারে সংযুক্তকৃত হতে পারে। একই ভাবে একটি ক্যাম্পাস বা একটি শপিং মলের পরিসীমা বর্ণনা করার জন্য জ্যামিতিক আকৃতি প্রয়োজন।
জিওজন অবজেক্ট
মঙ্গোডিবি জিওজন অবজেক্ট ব্যবহার করে জিওস্পেশিয়াল তথ্য প্রতিনিধিত্ব করে।
প্রায়শই জিওজন ধরণের সাধারণ ধরণগুলি হল:
- পয়েন্ট - একটি স্থানাংশ প্রতিনিধিত্ব করে
- লাইনস্ট্রিং - একটি লাইন প্রতিনিধিত্ব করে
- পলীগন - একটি বহুভুজ প্রতিনিধিত্ব করে
মঙ্গোডিবি ফিল্ডগুলিতে জিওজন অবজেক্ট সংরক্ষণের ফর্ম্যাট হল:
<field>: { type: <geojson type> , coordinates: <coordinates> }
ব্যাখ্যা:
-
- ফিল্ডের নাম - ধরন - জিওজন ধরন
- সংকেতাংশ - স্থানাংশের বিভিন্ন জন্য ফর্ম্যাট বিভিন্ন হয়।
উদাহরণ:
location: {
type: "Point", // জিওস্পেশিয়াল ডেটার প্রকার, এই মামলায়, এটি একটি স্থানাংশ
coordinates: [-73.856077, 40.848447] // দ্রাঘিমাংশ, অক্ষাংশ
}
ব্যাখ্যা: অবস্থান ফিল্ডটি স্থানাংশের জিওস্পেশিয়াল ডেটা সংরক্ষণ করে।
স্থানাংশ (পয়েন্ট)
বিন্যাস:
{ type: "Point", coordinates: [ দ্রাঘিমাংশ, অক্ষাংশ ] }
উদাহরণ:
{ type: "Point", coordinates: [ 40, 5 ] }
লাইন (লাইনস্ট্রিং)
বিন্যাস:
{ type: "LineString", coordinates: [ পয়েন্ট1, পয়েন্ট2, ...] }
উদাহরণ:
{ type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }
পলিগন
একাধিক লাইন দ্বারা গঠিত হতে পারে। বিন্যাস:
{
type: "Polygon",
coordinates: [
line1,
line2,
....
]
}
লক্ষ্য: প্রতি লাইন সেগমেন্টের শুরু এবং শেষ স্থানাংশ একই হতে হবে যাতে একটি বন্ধনী আকৃতি গঠন হয়।
একত্রিত লাইন সেগমেন্ট দ্বারা গঠিত আকৃতি
{
type: "Polygon",
coordinates: [
[ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] // লাইন সেগমেন্টের স্থানাংশ, লক্ষ্য করুন যে প্রথম এবং শেষ স্থানাংশগুলি একই হল।
]
}
একাধিক লাইন সেগমেন্ট দ্বারা গঠিত আকৃতি
{
type : "Polygon",
coordinates : [
[ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ], // লাইন সেগমেন্ট ১
[ [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 2 ] , [ 2 , 2 ] ] // লাইন সেগমেন্ট ২
]
}
জিওস্পেশিয়াল ইন্ডেক্স
MongoDB জিওস্পেশিয়াল ইনডেক্স সাপোর্ট করে যাতে GeoJSON ডেটা এক্সCELERATE করতে পারে।
2dsphere
এটি একটি বৃত্তাকার জ্যামিতিক ইনডেক্স ধরন, যার অর্থ হল দুটি পয়েন্টের মধ্যে দূরত্ব নির্ণয় করা হলে, 2dsphere পৃথিবীকে একটি গোলক হিসেবে গণনা করে।
2dsphere ইনডেক্স তৈরির উদাহরণ:
db.collection.createIndex( { location : "2dsphere" } )
অবস্থান ফিল্ডের জন্য একটি ইনডেক্স তৈরি করে।
2d
2D হল জ্যামিতিক ইন্ডেক্সের একটি প্ল্যানার জ্যামিতিক ধরণ, যা দুটি পয়েন্টের মধ্যে দূরত্ব নির্ণয় করার জন্য ব্যবহৃত হয় যেন তারা একটি প্লেনে থাকল। 2D ইনডেক্স তৈরির উদাহরণ:
db.collection.createIndex( { location : "2d" } )
এটি অবস্থান ফিল্ডের জন্য একটি ইনডেক্স তৈরি করে।
জিওস্পেশিয়াল প্রশ্ন ধরণ
মঙ্গোডিবি-র জিওস্পেশিয়াল প্রশ্ন সম্পর্কিত সব জ্যামিতিক গণনার সাথে সম্পর্কিত। নীচে মঙ্গোডিবি দ্বারা সমর্থিত প্রশ্ন ধরণগুলি উল্লেখ করা হল:
- $geoIntersects - একটি নির্দিষ্ট জ্যামিতিক আকৃতির ছাপ সাথে মিলতে ব্যবহৃত হয়।
- $geoWithin - নির্দিষ্ট জ্যামিতিক এলাকায় অবস্থিত ডকুমেন্ট মিলাতে ব্যবহৃত হয়।
- $near - সাধারণভাবে একটি নির্দিষ্ট স্থানাংশের কাছাকাছি ডকুমেন্ট জিওপয়েন্ট জেনে দেওয়ার জন্য ব্যবহৃত হয়।
লক্ষ্য: জিওস্পেশিয়াল প্রশ্ন সম্পর্কিত আরও তথ্যের জন্য, দয়া করে অনুরোধ করুন পরবর্তী অধ্যায়গুলিতে দেখুন।