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の右側のコンテンツは完全に記述する必要があり、あいまい一致ではありません。!全部書かないと見つけられない