gpt4 book ai didi

mongodb - 以相同的优先级对多个字段进行排序

转载 作者:可可西里 更新时间:2023-11-01 09:54:58 25 4
gpt4 key购买 nike

OneCollection.find({}, {sort: {time1: -1, time2: -1}});

这一次,time1 早于 time2

我想同时根据两个字段进行排序。

  • 如果 time1 不存在,则使用 time2。
  • 或者只使用相同的优先级。

两种方式都行。谢谢

最佳答案

我已经设法使用 aggregation 处理了类似的情况.你可以尝试这样的事情:

OneCollection.aggregate([
{
$addFields: {
time: {
$cond: {
if: {
$and: [
{ $ifNull: ['$time1', false] },
{ $gt: ['$time2', '$time1'] }
]
},
then: '$time1',
else: '$time2' } }
}
},
{ $sort: { time: -1 } },
{ $project: { time: false } }
]);

它添加临时字段 time 存储 time1 值,如果它存在并且大于 time2 值或 time2 否则值并将其用于排序。然后在排序操作完成后从结果文档中删除时间字段。

关于mongodb - 以相同的优先级对多个字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35495651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com