Javascript 如何在字段上使用indexOf对mongoose结果进行排序

Javascript 如何在字段上使用indexOf对mongoose结果进行排序,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有一个带有名称字段的项目集合。我使用正则表达式查找所需的项,但无法对它们进行排序 我希望项目按照我要查找的字符串在字段name中出现的编号进行排序。换句话说,我想按name.indexOf(value)进行排序。例如,我在其中查找包含字符串ro的项,并获取具有以下名称的项: Throw Rope Prop Chrome Rock 我希望项目按照字符串ro在其中出现的编号进行排序。从上面的列表中,我可以得到: Rope ^^ Rock ^^ Prop ^^ Throw ^^ Chrome

我有一个带有
名称
字段的项目集合。我使用正则表达式查找所需的项,但无法对它们进行排序

我希望项目按照我要查找的字符串在字段
name
中出现的编号进行排序。换句话说,我想按
name.indexOf(value)
进行排序。例如,我在其中查找包含字符串
ro
的项,并获取具有以下名称的项:

Throw
Rope
Prop
Chrome
Rock
我希望项目按照字符串
ro
在其中出现的编号进行排序。从上面的列表中,我可以得到:

Rope
^^
Rock
^^
Prop
 ^^
Throw
  ^^
Chrome
  ^^
目前,我在获取结果后对其进行排序,如下所示:

d = d.sort(function(a, b) {
  if(a.name.indexOf(val) > b.name.indexOf(val)) {
    return 1
  } else if(a.name.indexOf(val) < b.name.indexOf(val)) {
    return -1
  } else {
    return 0
  }
});
d=d.sort(函数(a,b){
如果(a.name.indexOf(val)>b.name.indexOf(val)){
返回1
}else if(a.name.indexOf(val)

有没有办法用mongoose的
.sort
$sort
对它们进行排序?

我不知道,你能不能随MongoDB的示例文档一起更新你的帖子?同时发布您想要查看的示例输出。使用示例进行编辑。我希望这能让事情更清楚,明白了。我不确定您是否可以使用这个聚合框架或直接使用简单查询,但您可以选择MapReduce。与本机查询相比,它的速度会慢一些,但确实会执行您尝试执行的操作。如果是这样,那么我将继续使用当前使用的操作。是的,这也是有意义的。我只能建议你做评测,哪一个更好。我不知道,你能不能更新你的帖子和MongoDB的示例文档?同时发布您想要查看的示例输出。使用示例进行编辑。我希望这能让事情更清楚,明白了。我不确定您是否可以使用这个聚合框架或直接使用简单查询,但您可以选择MapReduce。与本机查询相比,它的速度会慢一些,但确实会执行您尝试执行的操作。如果是这样,那么我将继续使用当前使用的操作。是的,这也是有意义的。我只能建议你做分析,哪一个更有效,去做吧。