【问题标题】:Sort with multiple keys meteor mongodb多键排序流星MongoDB
【发布时间】:2019-11-30 03:03:59
【问题描述】:

我收集了命名发票,我想按日期对我的收藏进行排序,但结果应该是具有发票编号的发票应该在顶部,而没有发票编号的发票应该在底部。

我已经尝试过了,但没有成功。

Invoice.find({},{sort:{createdAt :-1, invoiceNumber: 1}})

【问题讨论】:

  • 试试这个方法Users.find({}, { sort: [['createdAt', 'desc'], ['invoiceNumber', 'asc']] })
  • 试过了,但没用
  • 我已经检查了Invoice.find({},{sort:{createdAt :-1, invoiceNumber: 1}}) Users.find({}, { sort: [['createdAt', 'desc'], ['invoiceNumber', 'asc']] }) 两种方式,两者都适合我。

标签: javascript mongodb sorting meteor mongodb-query


【解决方案1】:

据我所知,不可能通过排序来做到这一点。您可以尝试先按 invoiceNumber 排序,然后按 createdAt 排序,但这不会给您想要的结果。

为此,我建议您执行 2 个查询,然后将它们连接到一个数组中。

const withNumber = Invoice.find({ invoiceNumber: { $exists: true } }, { sort: { createdAt :-1 }});

const withoutNumber = Invoice.find({ invoiceNumber: { $exists: false } }, { sort: { createdAt :-1 }});

const all = [...withNumber, ...withoutNumber];

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2012-04-07
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多