摘要:轉(zhuǎn)載之前在使用時,我們經(jīng)常會使用到函數(shù)來返回文本字段中值的長度。這樣看來通過管道操作來實現(xiàn)會是不錯的選擇。
轉(zhuǎn)載:http://forum.foxera.com/mongo...
之前在使用SQL時,我們經(jīng)常會使用到Len()函數(shù)來返回文本字段中值的長度。那Mongodb是否有這樣的操作呢,在version 3.4增加了此功能$strLenCP 如:有一個客戶購買商品信息集合orderdetail
{"_id": ObjectId("5821757bf28fbb3e3516eeaa"), "memid" : "f5869354", "orderno" : "s00023","productno":"20206539", "comment":"這個平底鍋太好用了,性價比高","telephone" :"18385669845"} {"_id": ObjectId("5821776ff28fbb3e3516eeab"), "memid" : "daisy", "orderno" : "s04567", "productno":"20225699","address":"comment","衣服穿起來很舒服好評" :"18855448645"} {"_id": ObjectId("5821829ef28fbb3e3516eeac"), "memid" : "lucy", "orderno" : "s08795", "productno":"20256339","address":"comment","還行" :"13869669585"} {"_id": ObjectId("582182b0f28fbb3e3516eead"), "memid" : "c5633256", "orderno" : "s45689","productno":"20285639","address":"comment","不好用,不建議買" :"13699869588"}
我們想統(tǒng)計客戶評論信息的長度,操作如下:
db.orderdetail.aggregate( [ { $project: { "_id":0, "orderno": 1, "productno":1, "comlength": { $strLenCP: "$comment" } } } ] ) {"orderno" : "s00023", "productno":"20206539", "comlength":14} {"orderno" : "s04567", "productno":"20225699", "comlength":10} {"orderno" : "s08795", "productno":"20256339", "comlength":2} {"orderno" : "s45689", "productno":"20285639", "comlength":8}
這樣就可以得出長度,也可以通過這個length繼續(xù)后面的分析
比如說想看看評論長度大于10的商品
db.orderdetail.aggregate( [ { $project: { "_id":0, "orderno": 1, "productno":1, "comlength": { $strLenCP: "$comment" } } }, { $match:{comlength:{$gt:10}} } ] ) {"orderno" : "s00023", "productno":"20206539", "comlength":14}
需要注意一點的是$strLenCP和$strLenBytes功能相近,但是在統(tǒng)計字符的時候有區(qū)別
$strLenByte會區(qū)分字符類型,比如:漢字會默認(rèn)為3個字節(jié),特殊字符如€為3個字節(jié),λ為2個字節(jié),é也為2個字節(jié)
當(dāng)然想要實現(xiàn)上述功能,還可以通過$where來實現(xiàn),但是多數(shù)情況下都避免使用$where查詢,比常規(guī)查詢慢很多,每個文檔都要從BSON轉(zhuǎn)換成JavaScript對象,然后通過$where表達(dá)式來運行,而且不能使用索引。這樣看來通過管道操作來實現(xiàn)會是不錯的選擇。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19341.html
摘要:概述使用這個教程在和使用軟件包安裝社區(qū)版雖然發(fā)行版包含自己的軟件包官方的社區(qū)版包通常是最新的平臺支持本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請參閱平臺支持軟件包在自己的存儲庫中提供官方支持軟件包此存儲庫包含以下軟件包軟件名簡介一個元軟件包將自動 概述 使用這個教程在 SUSE Linux 11 和 12 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 雖然 SUSE 發(fā)行版包含自己的 ...
摘要:概述使用本教程在系統(tǒng)上安裝社區(qū)版平臺支持自版本開始不支持請使用更新版本的來使用更新版本的重要如果你正在運行任何版本的或者請安裝修復(fù)程序以解決上的內(nèi)存映射文件的問題要求社區(qū)版需要或者更高版本安裝程序包含所有其它軟件依賴項將自動更新使用文件安裝 概述 使用本教程在 Windows 系統(tǒng)上安裝 MongoDB 社區(qū)版. 平臺支持: 自2.2版本開始, MongoDB 不支持 Windo...
摘要:概述使用這個教程在使用軟件包安裝社區(qū)版本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請參閱平臺支持軟件包在自己的存儲庫中提供官方支持軟件包此存儲庫包含以下軟件包軟件名簡介一個元軟件包將自動安裝下面列出的四個組件包包含守護(hù)程序和關(guān)聯(lián)配置和初始化腳本 概述 使用這個教程在 Amazon Linux 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 本安裝教程僅支持64位操作系統(tǒng). 詳細(xì)信息請參閱平...
摘要:概述使用這個教程在或者使用軟件包安裝社區(qū)版雖然包含自己的軟件包但官方的社區(qū)版包通常是最新的本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請參閱平臺支持這些軟件包可以與其它版本一起工作。 概述 使用這個教程在 Debian 7 Wheezy 或者 Debian 8 Jessie 使用 .deb 軟件包安裝 MongoDB 社區(qū)版. 雖然 Debian 包含自己的 MongoDB 軟件包, 但官方的 ...
摘要:概述使用這個教程在使用軟件包安裝社區(qū)版包含自己的軟件包但官方的社區(qū)版包通常是最新的平臺支持本安裝教程僅提供位長期支持版本例如,等等這些軟件包可能將和其它版本一起工作然后它們并不支持軟件包在自己的存儲庫中提供官方支持軟件包此存儲庫包含以下軟件 概述 使用這個教程在 LTS Ubuntu Linux 使用 .deb 軟件包安裝 MongoDB 社區(qū)版. Ubuntu 包含自己的 Mong...
閱讀 3144·2021-11-19 09:40
閱讀 2441·2021-10-14 09:42
閱讀 1718·2021-09-22 15:34
閱讀 1453·2019-08-30 15:55
閱讀 789·2019-08-29 12:59
閱讀 421·2019-08-28 18:28
閱讀 1828·2019-08-26 13:42
閱讀 1533·2019-08-26 13:29