我有这个用户集合:
{
"_id" : ObjectId("501faa18a34feb05890004f2"),
"username" : "joanarocha",
}
{
"_id" : ObjectId("501faa19a34feb05890005d3"),
"username" : "cristianarodrigues",
}
{
"_id" : ObjectId("501faa19a34feb05890006d8"),
"username" : "anarocha",
}
当我查询这个:db.users.find({‘username’:/ anaro / i})结果按自然顺序(插入顺序)排序.
我想用相似性搜索术语顺序对它们进行排序.在这种情况下,结果应该按此顺序返回:
06001
不幸的是,默认情况下,MongoDB不支持全文搜索排名.
首先,您需要一种算法来计算字符串之间的相似性.请参阅以下链接:
String similarity algorithims?
String similarity -> Levenshtein distance
然后,您需要使用算法编写javascript function来比较两个字符串以在查询中传递它.请参阅以下链接以了解如何实现:
Mongo complex sorting?