使用多个键排序 meteor mongodb

Sort with multiple keys meteor mongodb

我有一个名为 invoice 的集合,我想按日期对我的集合进行排序,但结果应该是有发票编号的发票应该在顶部,没有发票编号的发票应该在底部。

我已经试过了,但没有用。

Invoice.find({},{sort:{createdAt :-1, invoiceNumber: 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];