Mongodb $min 值有时大于 $max

Mongodb $min value is greater than $max sometimes

我正在从 mongo 数据库和 returns $first$max$min$last 中获取日期,但是有些东西非常不寻常的事情发生了——$min 大于 $max。这是我的代码:

let Lowestdate = await ETHMongo.aggregate([
  {
    $match: { createdAt: { $gte: new Date(last), $lte: new Date(NEW) } },
  },    
  {
    $group: {
      _id: null,

      minFee_doc: { $first: "$$ROOT" },
      minFee: { $min: "$one" },

      firstFee: { $first: "$one" },
      lastFee: { $last: "$one" },
      maxFee: { $max: "$one" },
    },
  },
]).then((result) => {});

有什么解决办法吗?

在字符串比较中 "99" > "1000000"

,您的“数字”似乎保存为 string

幸运的是,您可以很容易地解决这个问题,只需使用 $toInt

将字符串转换为数字即可
{
    $group: {
        _id: null,

        minFee_doc: { $first: "$$ROOT" },
        minFee: { $min: {$toInt: "$one"} },

        firstFee: { $first: "$one" },
        lastFee: { $last: "$one" },
        maxFee: { $max: {$toInt: "$one"} },
    },
}