MongoDB 如何支援類 SQL 查詢
經常看到有人追尋 MongoDB 支援 SQL 的解決方案,得到的都是一些否定答案,去寫 MongoDB 語法的指令碼吧 /MongoDB 歸類就是“NoSql”,有人解釋為“not only sql”,也有人直接理解為“no sql”/ 十年前有個 github 專案 ,一直處於實驗階段,看專案目標是把基本的 SQL 翻譯成 MongoDB 指令碼語法,但後來不了了之了。
看來,這確實是非常難得一件事!否則官方也早該把對 SQL 的支援內建了;即便沒內建,眾多的開源貢獻者也應該在外面給出了可用的補丁。
關聯式資料庫資料模型簡單,都是行列分明的單層二維表;所以描述它的計算的語言(SQL)就相對簡單;而 MongoDB 裡是多層巢狀的結構,屬性欄位任意出現。光是描述清楚選取哪一層的哪些欄位資訊,都是件不容易的事,再加上進一步的分組、聚合、條件、排序運算,複雜程度指數級上升,這也是多年來基於 MongoDB 資料庫計算一直困難的根本原因。
如果用徹底支援集合操作的集算器 SPL 語言,處理這種多層巢狀的資料結構就比較容易了,直接看程式碼:
|
A |
2 | =mongo_shell(A1," computer.find()").fetch() |
3 | =A2.new( _id:ID,income.array().sum():INCOME,output.array().sum():OUTPUT) |
這和理想中的SQL基本上一模一樣了:
SELECT
_id:ID,income.array().sum():INCOME,output.array().sum():OUTPUT FROM
computer
而做同樣查詢的 MongoDB 指令碼則是如下的一個程式碼規模:
MongoDB裡整套的查詢計算功能,都能用簡潔的SPL指令碼實現,就不一一在這裡列舉了。上面的例子摘自
SPL能很方便地嵌入到JAVA應用,可參考 。
具體使用方法可參考 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2702489/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb如何查詢最後幾項?MongoDB
- MongoDB - 聚合查詢MongoDB
- Query.js - 類SQL前端資料查詢類庫JSSQL前端
- Mongodb高階查詢MongoDB
- MongoDB查詢總結MongoDB
- ❖ MongoDB 高階查詢MongoDB
- mongodb慢查詢分析MongoDB
- MongoDB查詢條件MongoDB
- Java 中如何使用 SQL 查詢 TXTJavaSQL
- sql查詢是如何執行的?SQL
- SQL查詢的:子查詢和多表查詢SQL
- MongoDB慢查詢與索引MongoDB索引
- Mongodb 關聯表查詢MongoDB
- MongoDB 常用查詢語法MongoDB
- MongoDB查詢內嵌文件MongoDB
- MongoDB日期型別查詢MongoDB型別
- SQL--查詢SQL
- SQL 聚合查詢SQL
- 原生SQL查詢SQL
- mongodb條件查詢不等於MongoDB
- MongoDB 操作文件 查詢文件MongoDB
- MongoDB查詢如何只輸出部分欄位內容MongoDB
- SQL 複雜查詢SQL
- sql常用查詢命令SQL
- SQL連線查詢SQL
- SQL高階查詢SQL
- SQL查詢總結SQL
- SQL如何實現查詢節點依賴SQL
- WEBAPI單據查詢介面FilterString支援直接填寫SQL表示式WebAPIFilterSQL
- 建立支援類別下拉選單的Oracle查詢表DMOracle
- SQL:查詢每個類別最新的5條記錄SQL
- HighgoDB查詢慢SQL和阻塞SQLGoSQL
- pid,sid相互查詢,根據PID查詢sqlSQL
- Spring Boot MongoDB 查詢操作 (BasicQuery ,BSON)Spring BootMongoDB
- Laravel使用MongoDB複雜的查詢LaravelMongoDB
- JAVA - mongodb 聚合幾種查詢方式JavaMongoDB
- 如何使用SQL查詢檢視,Postico使用技巧分享~SQL
- 如何使用PL/SQL進行分級查詢WPSQL