91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB 中怎么計算子查詢

發布時間:2021-07-16 16:59:18 來源:億速云 閱讀:319 作者:Leah 欄目:MongoDB數據庫

這篇文章給大家介紹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問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭苏县| 关岭| 崇文区| 襄樊市| 宾川县| 古浪县| 澎湖县| 贞丰县| 习水县| 岱山县| 富锦市| 加查县| 壤塘县| 通化县| 奇台县| 福建省| 文安县| 资溪县| 礼泉县| 呼伦贝尔市| 富源县| 霍林郭勒市| 陇南市| 新乐市| 安徽省| 秦皇岛市| 泰顺县| 敦化市| 临夏市| 宾阳县| 陕西省| 冷水江市| 山阳县| 攀枝花市| 武夷山市| 兴化市| 东乡族自治县| 司法| 什邡市| 修武县| 北辰区|