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"} },
},
}
我正在从 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"} },
},
}