Mongodb hình học

MongoDB, là Cơ sở dữ liệu NoQuery, cho phép lưu trữ Dữ liệu không gian địa lý dưới dạng nhiều loại GeoJSON. Tính năng không gian địa lý của MongoDB giúp dễ dàng lưu trữ dữ liệu Địa lý vào cơ sở dữ liệu. Vì vậy, về cơ bản, bạn có thể lưu trữ dữ liệu loại không gian địa lý trong MongoDB dưới dạng các đối tượng GeoJSON. GeoJSON là một đại diện đơn giản của các đặc điểm địa lý, tương ứng cũng hỗ trợ các thuộc tính phi không gian. GeoJSON dựa trên Ký hiệu đối tượng JavaScript và là một định dạng chuẩn mở

cú pháp

" : { type : , coordinates : }"

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Mongodb hình học
Mongodb hình học
Mongodb hình học
Mongodb hình học

Mongodb hình học
Mongodb hình học
Mongodb hình học
Mongodb hình học

Giá bán
Xem các khóa học

Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (85.314 xếp hạng)

Explanation: represents the name of the field, ex. Location: type is the key to which values could be different, ex—”Point” Type, which is commonly used. Finally, coordinates are the key which holds the longitude and latitude or other numeric details of the location. Now, let us understand the simple syntax with an example.

Mã số

use geo
db.geo.insert( { "Name":  "Geo" } )
db.geo.insert( { Location : {"type":"Point","coordinates": [ 23.2222, 12.1111 ] } } )
db.geo.insert( { Location : {"type":"Point","coordinates": [ 31.1111, 21.3212 ] } } )
db.geo.find()

đầu ra

Mongodb hình học

Giải trình. Ở đây, chúng tôi đang cố gắng chèn một bản ghi vào bộ sưu tập địa lý, là một vị trí và có loại GeoJSON là Điểm, theo sau là tọa độ. Kiểm tra ảnh chụp màn hình bên dưới để thực hiện đúng

Bây giờ chúng ta đã hiểu Không gian địa lý trong MongoDB là gì, chúng ta hãy xem xét các toán tử có sẵn cho các hoạt động Không gian địa lý và hiểu chúng

Toán tử không gian địa lý MongoDB

Các toán tử trong Không gian địa lý cho MongoDB có thể được chia thành hai phần là Bộ chọn truy vấn và Bộ chỉ định hình học. Bây giờ chúng ta sẽ hiểu từng loại, cùng với các truy vấn và ví dụ. Bộ chỉ định Hình học được sử dụng với bộ chọn Truy vấn để chúng ta sẽ cùng nhau tìm hiểu những bộ này. Khi chúng tôi thử bất kỳ bộ chọn truy vấn nào, chúng tôi phải chỉ định một bộ xác định hình học

Ghi chú. Chúng tôi sẽ sử dụng các từ khóa quan trọng như tọa độ, Điểm, minDistance, maxDistance, hình học, v.v. , điều quan trọng khi thực hiện truy vấn vì đây là điểm dữ liệu lưu trữ dữ liệu không gian địa lý

Bộ chọn truy vấn không gian địa lý MongoDB

MongoDB cung cấp bốn bộ chọn truy vấn. Đây là những toán tử được sử dụng khi chúng ta cần tìm kiếm hoặc chỉ định một số dữ liệu. Ví dụ: toán tử $near được sử dụng để trả về các đối tượng địa lý xung quanh điểm. Sau đây là bộ chọn truy vấn được tìm thấy

$geoIntersects

Sử dụng toán tử $geometry, toán tử geoIntersects chỉ định Đối tượng GeoJSON. Các chỉ mục 2dsphere và 2d hỗ trợ các truy vấn GeoIntersect này. Với ví dụ sau, chúng tôi sẽ triển khai toán tử $geoIntersect đơn giản

Mã số

db.locs.find({ geometry: { $geoIntersects: { $geometry: { type: "Point", coordinates: [ -73.9341465567547, 40.819491095587647 ] } } } })

đầu ra

Mongodb hình học

Giải trình. chúng tôi có bộ sưu tập locs với 195 tài liệu. Chúng tôi đã chỉ định tọa độ và sẽ cố gắng tìm vùng lân cận của người dùng. Các giá trị trả về này có thể không có ý nghĩa trên thiết bị đầu cuối, nhưng nó cung cấp dữ liệu hữu ích khi được chuyển dưới dạng dữ liệu thô sang biểu diễn đồ họa

Công cụ xác định hình học Để sử dụng Không gian địa lý

Công cụ xác định hình học được sử dụng ở đây là $geometry Đối với việc sử dụng Toán tử truy vấn không gian địa lý như $geoWithin, $geoIntersects, $near và $nearSphere, $geometry được sử dụng. “EPSG. 4326” được sử dụng làm CRS mặc định – hệ quy chiếu tọa độ

$geoWithin

Truy vấn này chọn các máy đo địa lý được giới hạn trong hình học GeoJSON. Chỉ mục 2dsphere và 2d hỗ trợ $ geoWithin

Mã số

{
: {  $geoWithin: {
$geometry: { type: <"Polygon" or "MultiPolygon"> , coordinates: [ ] } }  }
}

Bây giờ chúng ta hãy hiểu $geoWithin bằng một ví dụ thích hợp

Mã số

db.geo.find({ location: { $geoWithin: { $centerSphere: [ [ -73.934147654, 40.82302903 ], 2 / 1163.2 ] } } }).limit(2)

đầu ra

Mongodb hình học

Giải trình. Chúng tôi sẽ cố gắng tìm tài liệu, sử dụng $geoWithin, sẽ trả về tài liệu giữa các tọa độ được đề cập tương ứng. Tham khảo ảnh chụp màn hình

$gần

Điều này cũng được hỗ trợ bởi cả hai chỉ mục và được sử dụng để trả về đối tượng không gian địa lý gần một điểm cụ thể. Điều này trả về một tài liệu được lưu trữ theo điểm gần nhất đến điểm xa nhất

Mã số

{
: {  $near: {
$geometry: { type: "Point" , coordinates: [ , ] },
$maxDistance: , $minDistance: }   }
}

Bây giờ chúng tôi sẽ triển khai $near với một ví dụ và xem nó hoạt động như thế nào

Mã số

db.area.find({location :{$near :{$geometry :{coordinates :[31.11,43.21]}}}})

đầu ra

Mongodb hình học

Giải trình. Truy vấn này sẽ trả về một số tài liệu có tọa độ gần những tài liệu được đề cập

$nearSphere

Truy vấn này trả về các tài liệu từ một bộ sưu tập, nằm gần nhất đến xa nhất. MongoDB sử dụng hình học hình cầu để tính toán khoảng cách. Cần có chỉ mục không gian địa lý với $nearSphere

Mã số

{
$nearSphere: { $geometry: { type : "Point", coordinates : [ , ] },
$minDistance: ,  $maxDistance: }
}

Mã số

________số 8_______

đầu ra

Mongodb hình học

Giải trình. Truy vấn này sẽ trả về một số tài liệu khớp với tọa độ được cung cấp. Tham khảo ảnh chụp màn hình đính kèm bên dưới để có đầu ra phù hợp. Bây giờ chúng ta hãy hiểu các đặc tả hình học. Chúng ta đã học $geometry, còn lại sẽ là $center, $maxDistance, $minDistance, $polygon và $box

trung tâm $

đối với truy vấn $geoWithin, $center chỉ định một vòng kết nối. Toán tử này KHÔNG trả về một đối tượng của GeoJSON

Mã số

db.area.find({location:{$geoWithin:{$center:[[-31,33],20]}}})

đầu ra

Mongodb hình học

Giải trình. Ở đây, chúng tôi đã sử dụng truy vấn $center với $geoWithin. Tham khảo ảnh chụp màn hình

$minKhoảng cách

Dưới đây chúng tôi có một ví dụ đơn giản về $minDistance

Mã số

use geo
db.geo.insert( { "Name":  "Geo" } )
db.geo.insert( { Location : {"type":"Point","coordinates": [ 23.2222, 12.1111 ] } } )
db.geo.insert( { Location : {"type":"Point","coordinates": [ 31.1111, 21.3212 ] } } )
db.geo.find()
0

đầu ra

Mongodb hình học

$ đa giác

Được sử dụng với $geoWithin, trả về tài liệu nằm giữa giới hạn của đa giác. KHÔNG truy vấn GeoJSON. Nếu không có chỉ mục không gian địa lý, có thể sử dụng $polygon, nhưng các truy vấn có thể được thực hiện nhanh hơn với chỉ mục không gian địa lý thay vì không được lập chỉ mục. Chỉ được hỗ trợ với chỉ mục không gian địa lý 2d

hộp $

cố gắng chỉ định hình chữ nhật cho $geoWithin và khi được sử dụng trong truy vấn, nó sẽ tìm các tài liệu có tọa độ nằm giữa hình chữ nhật. $box chỉ được hỗ trợ với chỉ mục không gian địa lý 2d. Sử dụng Hình học phẳng, truy vấn này tính toán khoảng cách

Phần kết luận

MongoDB Geospatial được sử dụng để lưu trữ dữ liệu địa lý, như tọa độ vị trí. Nhiều loại GeoJSON được hỗ trợ. Có hai loại truy vấn, đó là Bộ chọn truy vấn và  Bộ chỉ định hình học. MongoDB hỗ trợ 7 loại Đối tượng GeoJSON, Điểm là loại phổ biến nhất. Chúng tôi đã học và hiểu từng toán tử cùng với ví dụ và mã tương ứng

Bài viết được đề xuất

Đây là hướng dẫn về Không gian địa lý MongoDB. Ở đây chúng tôi thảo luận về phần giới thiệu về Không gian địa lý MongoDB, cú pháp, toán tử và ví dụ thích hợp. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –