小编Jer*_*rey的帖子

Mongodb聚合匹配查询,优先全匹配

我正在尝试对字段执行 mongodb 正则表达式查询。我希望查询在找到一个匹配项时优先考虑完整匹配项,然后再优先考虑部分匹配项。

例如,如果我有一个充满以下条目的数据库。

{
   "username": "patrick"
},
{
   "username": "robert"
},
{
   "username": "patrice"
},
{
   "username": "pat"
},
{
   "username": "patter"
},
{
   "username": "john_patrick"
}
Run Code Online (Sandbox Code Playgroud)

我查询用户名“pat”,我想首先返回直接匹配的结果,然后是部分匹配。因此结果将排序为 ['pat', 'patrick', 'patrice', 'patter', 'john_patrick']。

是否可以单独使用 mongo 查询来完成此操作?如果是这样,有人可以向我指出详细说明如何实现它的资源吗?

这是我尝试用来执行此操作的查询。

db.accounts.aggregate({ $match : 
{ 
    $or : [ 
        { "usernameLowercase" : "pat" },
        { "usernameLowercase" : { $regex : "pat" } }
    ] 
} })
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

2
推荐指数
1
解决办法
1616
查看次数

标签 统计

mongodb ×1

mongodb-query ×1