久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MongoDB 中怎么計算子查詢

146次閱讀
沒有評論

共計 1950 個字符,預計需要花費 5 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章給大家介紹 MongoDB 中怎么計算子查詢,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

MongoDB 在某些方面確實比關系型數據庫更強 (比如對追加型日志數據的吞吐能力),但結構化計算能力方面較弱。比如:MongoDB 不支持子查詢,碰到這些復雜的運算就只能先將數據讀出后再計算,而用 Java 等語言編寫這類計算也不是很簡單。

比如要處理這么個場景:查出訂單信息,要求訂單中的 SELLERID 必須是 employee 集合中 STATE= California 的員工 id。如果寫成 sql 就是:

Select * from orders where orders.sellerid in (select eid from employee where employee.state=’California’)。

orders 的數據量較大無法一次取出,employee 的數據量較小,最終結果的數據量也較小。部分數據如下:

MongoDB Collection orders:

{_id : ObjectId( 5434f88dd00ab5276493e270), ORDERID : 1, CLIENT : UJRNP

, SELLERID : 17, AMOUNT : 392, ORDERDATE : 2008/11/2 15:28 }

{_id : ObjectId( 5434f88dd00ab5276493e271), ORDERID : 2, CLIENT : SJCH

, SELLERID : 6, AMOUNT : 4802, ORDERDATE : 2008/11/9 15:28 }

{_id : ObjectId( 5434f88dd00ab5276493e272), ORDERID : 3, CLIENT : UJRNP

, SELLERID : 16, AMOUNT : 13500, ORDERDATE : 2008/11/5 15:28 }

{_id : ObjectId( 5434f88dd00ab5276493e273), ORDERID : 4, CLIENT : PWQ ,

  SELLERID : 9, AMOUNT : 26100, ORDERDATE : 2008/11/8 15:28 }

MongoDB Collection employee:

{_id : ObjectId( 5437413513bdf2a4048f3480), EID : 1, NAME : Rebecca ,

SURNAME : Moore , GENDER : F , STATE : California , BIRTHDAY : 1974-1

1-20 , HIREDATE : 2005-03-11 , DEPT : R D , SALARY : 7000 }

{_id : ObjectId( 5437413513bdf2a4048f3481), EID : 2, NAME : Ashley , S

URNAME : Wilson , GENDER : F , STATE : New York , BIRTHDAY : 1980-07-

19 , HIREDATE : 2008-03-16 , DEPT : Finance , SALARY : 11000 }

{_id : ObjectId( 5437413513bdf2a4048f3482), EID : 3, NAME : Rachel , S

URNAME : Johnson , GENDER : F , STATE : New Mexico , BIRTHDAY : 1970-

12-17 , HIREDATE : 2010-12-01 , DEPT : Sales , SALARY : 9000 }

計算結果:

MongoDB 中怎么計算子查詢

如果有集算器的協助就簡單多了,它是專門為結構化、半結構化數據計算設計的編程語言,查詢、子查詢、分組后過濾等等都有函數類庫可以用,能夠很好的彌補 MongoDB 在結構化方面計算能力的不足。比如上面問題,4 行就搞定了:

A

1

=mongo_open(mongodb://localhost:27017/test?user=test password=test)

2

=mongo_shell(A1, orders.find(,{_id:0}) )

3

=mongo_shell@x(A1, employee.find({STATE: California},{_id:0}) ).fetch()

4

=A2.select(A3.(EID).sort().pos@b(SELLERID)).fetch()

其實還有很多情況用 MongoDB 處理結構化計算不太方便,但有集算器 SPL 的輔助卻很簡單,感興趣可以參考:
玩轉 Mongo 計算、
簡化 MongoDB 關聯運算、
輔助 MongoDB 計算

集算器還很容易嵌入到 Java 應用程序中,
Java 如何調用 SPL 腳本有使用和獲得它的方法。

關于 MongoDB 中怎么計算子查詢就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1950字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 垫江县| 正蓝旗| 札达县| 保定市| 东乌| 赤水市| 临安市| 咸宁市| 红桥区| 寿光市| 攀枝花市| 达孜县| 怀化市| 潢川县| 桐梓县| 泰顺县| 临高县| 青田县| 大厂| 招远市| 南郑县| 建平县| 深水埗区| 绵阳市| 安平县| 莱州市| 桐梓县| 弥渡县| 中阳县| 峡江县| 腾冲县| 高邑县| 灵寿县| 泾源县| 柳河县| 高雄县| 阿鲁科尔沁旗| 祁东县| 广丰县| 枞阳县| 萝北县|