この記事の内容は、mgo で文字列長を指定してデータ (コード) を検索する方法に関するもので、一定の参考値がありますので、困っている方は参考にしていただければ幸いです。あなたは助けてくれました。
職場では、文字列フィールドの長さに基づいて一部のデータをフィルタリングすることがあります。このとき、正規表現を使用することも、mongodb の $where を使用することもできます。正規表現はさまざまな言語で正しく記述されています。若干の違いがあるのでここに記録しておきます。
コメント フィールドの文字列長が 10 を超えるデータを探している場合、mongodb コマンド ラインは次のように記述されます。
$ の部分は、
find({"comment":{"$exists":true},"$where":"this.comment.length>10"})
正規表現は次のように記述されます:
find({"comment":{"$regex":/^.{10,}$/}})
Go 言語での記述方法は次のとおりです:
$ここでの記述方法:
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,}$`, ""}}})
その他の条件 Regular:
^.{n,m}$ n <= length<= m
^.{ n}$ length= n
この長さ 文字の長さです 例えば「正規表現」の長さは 5
検索性能についてはインターネット上で言われていますその正規表現は、$where よりもパフォーマンスが優れています。データの量が大きくない場合、簡単なテストでは、正規表現の方が検索パフォーマンスが優れていることがわかります。1 点、後でさらに調査する時間があります。
Thisこの記事はここで終了しました。その他のエキサイティングなコンテンツについては、PHP 中国語 Web サイトの mongodb ビデオ チュートリアル 列に注目してください。
以上がmgo がデータ (コード) を検索するために文字列の長さを指定する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。