正規表現に基づくmongodbでのファジークエリ/フルテキストコンテンツマッチング

mongodbのファジークエリには2つの方法があります。1つは全文検索です。これはフィールドにインデックスを付け、全文マッチングに$ textを使用する方法です。もう1つは、正規表現を使用する方法です。

何度もテストを重ねた結果、正規表現の方が使いやすいことがわかりました。ここでは主に正規表現を紹介します。

MongoDBは、$ regex 演算子またはダブルスラッシュ(/ /)を使用して 、文字列に一致する正規表現を設定できます。

全文検索では最初にフィールドにインデックスを付ける必要があり、正規表現は構成なしで直接使用できるため、比較的便利です。

db.users.insert({
   "name": "zhangsan,张三",
   "friends": [
      "lijiang",
      "小明"
   ]
})

複数のデータを挿入することもできます 

 

db.users.insertMany([
{
   "name": "zhangsan,张三",
   "friends": [
      "lijiang",
      "小明"
   ]
},
{
   "name": "LiSi,李四",
   "friends": [
      "XiaoHong",
      "小军"
   ]
},
{
   "name": "王五,WangWu",
   "friends": [
      "大明",
      "zhaoliu"
   ]
}
])

ファジークエリ(中国語をサポートできます)

$ regexを使用する 

スラッシュメソッドを使用することもできます://

大文字と小文字を区別しない検索が必要な場合は、$ optionsを$ iに設定できます。スラッシュの場合は、最後のスラッシュの後に文字iを追加するだけです。

さらに、次のように、値が文字列である値だけでなく、値が配列であるコンテンツも一致させることができます。

正規表現でプレフィックス式を使用する

^を追加するだけです。 / ^ /は 一致して示し始めて値を

$ inおよび$ nin演算子

$ inは含めることを意味します

$ ninは含まれていないことを意味します

注:$ ninの右側のコンテンツは完全に記述する必要があり、あいまい一致ではありません。全部書かないと見つけられない

 

 

 

おすすめ

転載: blog.csdn.net/qq_40323256/article/details/113887509