-1

だから私はカイルの本を読んでいて、彼が正規表現を使用してテキストを照合するために使用した次の例に出くわしました。

db.reviews.find({
    user_id: ObjectId("4c4b1476238d3b4dd5000001"),
    text: /best|worst/i
})

しかし、サンプル ドキュメントがないので、彼がこの例で使用しているドキュメントがどのように構成されているか想像できません。では、上記の正規表現が機能する簡単なドキュメントを描いていただけますか? 私が知る限り、もちろん _id キーと text キーがありますが、その text キーの値はどのように見えるでしょうか?

ありがとう。

4

1 に答える 1

1

このようなものを想像してみてください。他の場所にユーザー コレクションがあり、これはすべてのユーザーがこれまでに書いたすべてのレビューのコレクションです。特定のユーザーによるすべてのレビューを取得する場合は、そのユーザーの ID (user_id 部分) に一致するすべてのレビューをクエリします。ここで、(大文字の使用に関係なく) best または worst という単語が含まれるレビューのみが必要であると判断します。それがクエリの 2 番目の部分です。

以下の 3 つのドキュメントすべてが一致する user_id を持っていると仮定すると、最初と 3 番目はテキスト クエリに一致しますが、中央のドキュメントは一致しません。

{
   user_id: ObjectId(),
   text : "This was the worst one of my life!"
}

{

   user_id: ObjectId(),
   text : "Totally awesome, couldn't be better!"
}

{
   user_id: ObjectId(),
   text : "BEST EVAH!"
}
于 2012-06-03T05:46:55.657 に答える