更新:从 MongoDB 2.4 版本开始,可以使用“text”索引和全文搜索查询来实现此操作。您可以在此处阅读有关它们的更多信息。如果使用最新版本的 MongoDB,则下面的方法就会显得愚蠢和不必要。
然而,如果您使用的是 MongoDB < 2.4.0,则可以使用正则表达式来实现:
> db.reg.insert({searchword: "win"})
> db.reg.insert({searchword: "window"})
> db.reg.insert({searchword: "Win"})
> db.reg.find()
{ "_id" : ObjectId("4ecd2e33dd68c9021e453d12"), "searchword" : "win" }
{ "_id" : ObjectId("4ecd2e36dd68c9021e453d13"), "searchword" : "window" }
{ "_id" : ObjectId("4ecd2e39dd68c9021e453d14"), "searchword" : "Win" }
> db.reg.find({ searchword: /^win$/i })
{ "_id" : ObjectId("4ecd2e33dd68c9021e453d12"), "searchword" : "win" }
{ "_id" : ObjectId("4ecd2e39dd68c9021e453d14"), "searchword" : "Win" }
然而,你的版本不起作用是因为在使用$regex操作符时不需要使用“/”:
> db.reg.find({ searchword: { $regex: "^win$", $options: '-i' }})
{ "_id" : ObjectId("4ecd2e33dd68c9021e453d12"), "searchword" : "win" }
{ "_id" : ObjectId("4ecd2e39dd68c9021e453d14"), "searchword" : "Win" }
请注意,不区分大小写的查询不使用索引,因此可能有意义创建一个小写的searchword字段,以便您可以加快查询速度。
点击
这里了解更多关于正则表达式的信息。