【问题标题】:Mongoose reverse order of some elements picked out of entire list从整个列表中挑选出的一些元素的猫鼬逆序
【发布时间】:2021-01-09 07:07:00
【问题描述】:

当前在 Messages 集合中,我有 [1,2,3,4,5,6,7 ... 20] 之类的项目。

如果我编码如下:

let order = "desc";
let sortBy = "_id";
const messages = await Message.find({ channel: channelID })
      .sort([[sortBy, order]])

然后“const messages”得到类似[20,19,18,17,16].

但我希望它是 [16,17,18,19,20] 从 mongoose find 函数接收后,而不是手动反转这个数组。

我试图设置let order = "asc";,但它给了我[1,2,3,4,5]

如何直接从 mongoose 查询中获取[16,17,18,19,20] 而无需手动反转顺序?

【问题讨论】:

标签: mongodb mongoose mongodb-query


【解决方案1】:

正确的 MongoDB 语法应该是

db.Message.find({ channel: channelID })
      .sort({ "_id": 1 })

所以在 JS 中

const messages = await Message.find({ channel: channelID })
      .sort({ "_id", 1})

或者,如果您想将 _id 和 1 排除在查询之外

const order = 1;
const sortBy = "_id";

const orderQuery = {};
orderQuery[sortBy] = order ;

const messages = await Message.find({ channel: channelID })
      .sort(orderQuery)

有什么问题告诉我

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 2019-01-09
    • 2020-05-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多