mgo指定字符串長度查找數據的方法介紹(代碼)

本篇文章給大家?guī)淼膬热菔顷P于mgo指定字符串長度查找數據的方法介紹(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

工作中偶爾會根據字符串字段的長度來篩選一些數據,這時候可能會用到正則表達式,也可以用mongodb的$where,正則表達式在不同的語言中,正確寫法又有所差異,特此記錄一下。 ?

假如查找comment字段字符串長度大于10的數據,mongodb命令行寫法如下:

$where寫法:

find({"comment":{"$exists":true},"$where":"this.comment.length>10"})

正則表達式寫法:

find({"comment":{"$regex":/^.{10,}$/}})

go語言中寫法如下:

$where寫法:

collection.Find(bson.M{"comment":?bson.M{"$exists":?true},?"$where":?"this.comment.length?>?10"})

正則表達式寫法:

collection.Find(bson.M{"comment":?bson.M{"$exists":?true,?"$regex":?bson.RegEx{`^.{10,}$`,?""}}})

其他條件正則:

^.{n,m}$?n ^.{n}$?長度 = n

這個長度是字符的長度,比如”正則表達式”長度就是5

至于查找性能方面,網上說正則比$where性能好,數據量不大的情況下簡單測試,確實是正則查找性能好一點,后面有時間進行深一步的研究看看

本篇文章到這里就已經全部結束了,更多其他精彩內容可以關注php中文網的mongodb視頻教程欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享