摘要:工作中偶爾會根據字符串字段的長度來篩選一些數據,這時候可能會用到正則表達式,也可以用的,正則表達式在不同的語言中,正確寫法又有所差異,特此記錄一下。
工作中偶爾會根據字符串字段的長度來篩選一些數據,這時候可能會用到正則表達式,也可以用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 <= 長度 <= m
^.{n}$ 長度 = n
這個長度是字符的長度,比如"正則表達式"長度就是5
至于查找性能方面,網上說正則比$where性能好,數據量不大的情況下簡單測試,確實是正則查找性能好一點,后面有時間進行深一步的研究看看
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19509.html
摘要:如果刪除所有用替換其他寫了一個和結合的數據查詢服務細節可點擊鏈接到查看 1.系統環境 Golang:go version go1.10.3 darwin/amd64 OS:MacOS MongoDB: version: 3.4.4 2.Golang使用MongoDB 使用:gopkg.in/mgo.v2 獲取包:go get gopkg.in/mgo.v2 引入:impor...
摘要:準備數據結構這個以對一個簡單的通訊錄進行插入查詢更新刪除記錄為例,中包含和兩個字段下載還沒出官方的驅動包,是現在比較流行的第三方包,能找到的相關資料也比較多。準備實現對的增刪改查操作,先想了下怎么寫測試案例。查找,通過查找該條記錄。 環境聲明:go version go1.11MongoDB server version 4.0.3 背景 這是我第一次接觸golang和MongoDB,...
摘要:在這里談一談實踐過程中遇到的問題,基礎的用法不再說明了,可以自行百度。一般傳入的參數為。當然中的聚合命令不止這些,用法大同小異如果要實現一些高級功能,的基本命令滿足不了你,可能就要使用這個了。 前言 最近在項目中使用mongodb進行簡單的數據分析,在使用mongodb驅動mgo時遇到一些問題,比如在mongodb中執行命令成功,到了mgo中就執行失敗。在這里談一談實踐過程中遇到的問題...
摘要:搭建服務器采用搭建,可參考讀模式的讀模式共有五種在主節點上進行所有的讀操作優先在主節點上進行讀操作,如果主節點不可用,再從從節點操作。 Replica Sets搭建 服務器采用Replica Sets搭建,可參考Deploy a Replica Set 讀模式 Mongod的讀模式共有五種: primary. 在主節點上進行所有的讀操作 primaryPreferred. 優...
摘要:沒有類這一概念,對于變量的捆綁都是由鍵值對形式的結構體實現的。在做記錄的查詢時,需要新建一個同類型的結構體或結構體數組,然后執行操作,如果參數為空,則返回全部記錄如果你熟悉的操作,可以看出,這樣的操作與直接在內操作幾乎相同。 go沒有類這一概念,對于變量的捆綁都是由鍵值對形式的結構體(struct)實現的。這對同樣是以鍵值對形式存儲的mongodb以及json都非常友好。所以在go中,...
閱讀 2513·2023-04-25 17:27
閱讀 1824·2019-08-30 15:54
閱讀 2369·2019-08-30 13:06
閱讀 2980·2019-08-30 11:04
閱讀 746·2019-08-29 15:30
閱讀 729·2019-08-29 15:16
閱讀 1733·2019-08-26 10:10
閱讀 3603·2019-08-23 17:02