【发布时间】:2018-02-27 19:16:37
【问题描述】:
我正在与来自bignumber.js package 的BigNumbers 合作
我是 Mongo 的新手,我很好奇 Mongo 如何知道如何正确序列化这个对象(或任何其他对象)?
我问是因为我有 2 个脚本,它们在插入这些对象的方式上看似相同,但在一个脚本中,BigNumbers 作为字符串插入到另一个脚本中,它们作为数字插入。
对象来自any 流,我需要将任何对象转换或强制转换为Altitude。
示例代码:
export interface Altitude {
altitude: BigNumber;
minAltitude: BigNumber;
maxAltitude: BigNumber;
}
... 'message' object of type any from stream ...
// this JSON back and forth stuff seems like it should be unnecessary
let jsonString = JSON.stringify(message);
let alt = JSON.parse(jsonString) as Altitude;
collection.insert(alt, (error: MongoError, result: InsertOneWriteOpResult) => {
...
});
为BigNumbers 插入字符串。
看到作为字符串插入到 Mongo 中的值,我尝试进一步强制该问题,只是为了看看它是否可以工作:
let alt = JSON.parse(jsonString) as Altitude;
let alt1 = {
size: alt.altitude as BigNumber,
minAltitude: alt.minAltitude as BigNumber,
maxAltitude: alt.minAltitude as BigNumber,
};
collection.insert(alt1, (error: MongoError, result: InsertOneWriteOpResult) => {
...
});
但是,这些值仍然作为字符串插入。在我的其他脚本中,一切都是数字。
想法?
【问题讨论】:
标签: node.js mongodb typescript