Mongo比BigInt大

时间:2019-06-12 16:03:44

标签: mongodb

我有订阅集合,每个订阅都有一个特殊的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,但除上面的代码外找不到任何东西。

0 个答案:

没有答案