我在Mongo DB
中有一个用户集合,拥有55个用户。该集合在10个节点之间共享。
集合中有一个“电子邮件”字段,用于存储用户的电子邮件地址。
我想在此字段上执行基于文本的搜索。我要搜索“邮件”,结果应列出所有带有子字符串“邮件”的文档。
下面提到的收藏示例
{ "_id" : ObjectId("5b90e5ffe34b5891eb4c32f6"), "email" : "anand@gmail.com" }
{ "_id" : ObjectId("5b90e64ee34b5891eb4c32f7"), "email" : "kumar.anand@hotmail.com" }
{ "_id" : ObjectId("5b90e65ae34b5891eb4c32f8"), "email" : "ankit@gmail.com" }
{ "_id" : ObjectId("5b90e661e34b5891eb4c32f9"), "email" : "rahul@rediff.com" }
{ "_id" : ObjectId("5b90e67de34b5891eb4c32fa"), "email" : "prachi@gmail.com" }
{ "_id" : ObjectId("5b90f0ab46ef1951e6afb822"), "email" : "bb@yahoo.com", "name" : "ankit" }
{ "_id" : ObjectId("5b965d4ad5bc80bda9885181"), "email" : "amit@gmail.com", "rating" : [ 5, 6 ] }
{ "_id" : ObjectId("5b965d56d5bc80bda9885182"), "email" : "amit33@gmail.com", "rating" : [ 2, 4 ] }
{ "_id" : ObjectId("5b965d60d5bc80bda9885183"), "email" : "amit11@gmail.com", "rating" : [ 12, 14 ] }
{ "_id" : ObjectId("5b966cf1f12e2344dc5942e5"), "email" : "avin11@gmail.com", "new_rating" : { "id" : [ 5, 6 ] } }
{ "_id" : ObjectId("5b966cfdf12e2344dc5942e6"), "email" : "avin22@gmail.com", "new_rating" : { "id" : [ 2, 4 ] } }
{ "_id" : ObjectId("5b966d06f12e2344dc5942e7"), "email" : "avin33@gmail.com", "new_rating" : { "id" : [ 12, 14 ] } }
{ "_id" : ObjectId("5b986afaf12e2344dc5942e8"), "email" : "Sachin@hotmail.com", "name" : "Sachin" }
请提出如何执行搜索查询
答案 0 :(得分:0)
嗨,欢迎来到Stack Overflow社区。 我认为您仍然可以使用正则表达式,但是您应该在电子邮件字段上使用索引以取得更好的性能。 在此处阅读有关mongo DB上正则表达式和索引的更多信息:https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use
我建议使用Explain Results以确保您的查询使用您添加的索引。
希望这会有所帮助。