mongoDB中不使用聚合的按字段排序

mongoDB中不使用聚合的按字段排序,mongodb,mongodb-query,Mongodb,Mongodb Query,我在MongoDB中有没有方法按字段进行排序 在Mysql中,有如下内容: SELECT id, name, priority FROM mytable ORDER BY FIELD(priority, "core", "board", "other") 这能在MongoDB中实现吗 类似问题的答案如下: 这使用聚合函数。我想要的是不使用聚合,而是使用in-find。是的,MongoDB具有“按顺序”功能,它是通过使用sort()实现的。有关如何使用的两个基本示例,请参见下文: db.coll

我在MongoDB中有没有方法按字段进行排序

在Mysql中,有如下内容:

SELECT id, name, priority
FROM mytable
ORDER BY FIELD(priority, "core", "board", "other")
这能在MongoDB中实现吗

类似问题的答案如下:

这使用聚合函数。我想要的是不使用聚合,而是使用in-find。

是的,MongoDB具有“按顺序”功能,它是通过使用
sort()实现的。
有关如何使用的两个基本示例,请参见下文:

db.collection.find({}).sort({“fieldName”:1})

对于降序排序使用:

db.collection.find({}).sort({“fieldName”:-1})

是的,MongoDB具有“按顺序”功能,它是使用
sort()实现的。
有关如何使用的两个基本示例,请参见下文:

db.collection.find({}).sort({“fieldName”:1})

对于降序排序使用:


db.collection.find({}).sort({“fieldName”:-1})

当前没有。MongoDB只允许按常规的升序和降序对字段进行排序。您不能提供自定义的优先级排序顺序或任何东西


最接近的方法是使用聚合框架将值分配给字段,以便按照您想要的方式进行排序。虽然这对大型查询不起作用,所以我不推荐它。

目前不推荐。MongoDB只允许按常规的升序和降序对字段进行排序。您不能提供自定义的优先级排序顺序或任何东西



最接近的方法是使用聚合框架将值分配给字段,以便按照您想要的方式进行排序。尽管这对大型查询不起作用,所以我不推荐它。

这不是他所要求的,这是非常具体的SQL语法,用于根据字段而不是字段的值进行排序itself@Sammaye我相信,您可以使用sort实现类似的功能。我不是SQL出身,但据我所知,docs.mongodb.org/manual/tutorial/sort-results-with-index(滚动到在多个字段上使用排序)将产生相同或类似的结果。让我知道你的想法,我会更新我的答案。谢谢,这个问题似乎一直在问,不是真的。他没有按字母顺序排序,因为MongoDB根本无法在服务器端进行排序,也就是说,他是按c对B排序,这不是他要求的,这是非常具体的SQL语法,用于根据字段的值进行排序,而不是字段itself@Sammaye我相信,您可以使用sort实现类似的功能。我不是SQL出身,但据我所知,docs.mongodb.org/manual/tutorial/sort-results-with-index(滚动到在多个字段上使用排序)将产生相同或类似的结果。让我知道你的想法,我会更新我的答案。谢谢,这个问题似乎一直在问,不是真的。他没有按字母顺序排序,因为MongoDB根本无法完成服务器端的排序,也就是说,他是按c排序的b@JohnnyHK我正在寻找没有聚合的东西。没有办法在服务器端使用
查找
,但您可以在客户端执行。如果是这样,那么这不是一个重复的问题。问题清楚地表明,我想要的是没有聚合的东西,而在find中有。在那个重复链接的任何地方都没有提到。在你的问题被标记为重复后,你在编辑中添加了那个部分。但这两个问题显然都需要一个基于
find
的解决方案(服务器端不存在),因此我认为重新打开它没有多大意义,除非您正在寻找客户端解决方案。@JohnnyHK我正在寻找没有聚合的解决方案。没有办法在服务器端使用
find
,但你可以在客户端完成,如果是这样的话,这就不是一个重复的问题。问题清楚地表明,我想要的是没有聚合的东西,而在find中有。在那个重复链接的任何地方都没有提到。在你的问题被标记为重复后,你在编辑中添加了那个部分。但这两个问题显然都需要一个基于
find
的解决方案(服务器端不存在),因此我认为重新打开它没有多大意义,除非您正在寻找客户端解决方案。是的,这是真的。它不能很好地与大型查询同步,维护它是一件痛苦的事情。您还有什么建议吗?@user2520670我想不起。这是MongoDB目前的一个限制,没错。它不能很好地与大型查询同步,维护它是一件痛苦的事情。您还有什么建议吗?@user2520670我想不起。这是MongoDB目前的一个限制