我有订阅集合,每个订阅都有一个特殊的ID,因为它是BigInt,所以我将其存储为字符串:
[{sub_id:"223211232421412323324235435645356"},{sub_id:"223211232421412323324235435645357"},{sub_id:"223211232421412323324235435645358"}]
我需要获得范围之间的订阅,例如,我需要获得比“ 223211232421412323324324235435645356” 和小于“ 223211232421412323324235235435435358” 更好的所有订阅,代码i想到了这样的样子:
let long = require('mongodb').Long;
subscriptions.aggregate([{
$match: {
sub_id: {
$gt: long.fromString(String(BigInt("223211232421412323324235435645356") - 1n)),
$lt: long.fromString(String(BigInt("223211232421412323324235435645358") + 1n))
}
}
}, {
$sort: {
sub_id: 1
}
}], {
collation: {
locale: "en_US",
numericOrdering: true
}
})
但是我得到的结果是空的,我想知道为什么它不起作用?也许还有另一种在mongo中使用bigint
的方法?我尝试了Google,但除上面的代码外找不到任何东西。