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
- MongoDB - 聚合查詢MongoDB
- Mongodb高階查詢MongoDB
- MongoDB查詢總結MongoDB
- mongodb慢查詢分析MongoDB
- ❖ MongoDB 高階查詢MongoDB
- MongoDB查詢條件MongoDB
- MongoDB條件查詢MongoDB
- Query.js - 類SQL前端資料查詢類庫JSSQL前端
- Sql server 國際化的支援,查詢亂碼SQLServer
- Mongodb操作之查詢(循序漸進對比SQL語句)MongoDBSQL
- Java 中如何使用 SQL 查詢 TXTJavaSQL
- sql查詢是如何執行的?SQL
- 我如何調優SQL Server查詢SQLServer
- MongoDB 常用查詢語法MongoDB
- MongoDB查詢內嵌文件MongoDB
- MongoDB慢查詢與索引MongoDB索引
- Mongodb 關聯表查詢MongoDB
- MongoDB日期型別查詢MongoDB型別
- Mongodb 常用的查詢方法MongoDB
- SQL查詢的:子查詢和多表查詢SQL
- mysql sql_safe_updates 不支援子查詢的更新。MySql
- 【SQL查詢】集合查詢之INTERSECTSQL
- MongoDB查詢如何只輸出部分欄位內容MongoDB
- 各類查詢
- 建立支援類別下拉選單的Oracle查詢表DMOracle
- mongodb條件查詢不等於MongoDB
- MongoDB 操作文件 查詢文件MongoDB
- MongoDB的排除查詢$ne缺陷MongoDB
- MongoDB之資料查詢操作MongoDB
- MongoDB高階查詢詳細MongoDB
- 原生SQL查詢SQL
- SQL 聚合查詢SQL
- sql 查詢效率SQL
- sql子查詢SQL
- SQL--查詢SQL
- goldendate呼叫sql實現類似表聯合查詢GoSQL