MongoDB铸造双到长
我正在尝试将mongo shell中的数字1477958757748.9697转换为long。NumberLong函数抛出一个错误:MongoDB铸造双到长,mongodb,casting,long-double,Mongodb,Casting,Long Double,我正在尝试将mongo shell中的数字1477958757748.9697转换为long。NumberLong函数抛出一个错误: > NumberLong(1477958757748.9697); 2017-06-03T08:52:56.306-0400 E QUERY [thread1] Error: number passed to NumberLong must be representable as an int64_t : @(sh
> NumberLong(1477958757748.9697);
2017-06-03T08:52:56.306-0400 E QUERY [thread1] Error: number
passed to NumberLong must be representable as an int64_t :
@(shell):1:1
>
有没有其他办法代替NumberLong?
examle的NumberPrint不适用于整数:
> NumberInt(12.6);
NumberInt(12)
>
在Mongo中如何做到这一点?
NumberLong(parseInt(1477958757748.9697))
但实际上,这只是“shell”。你选择的语言真的对这些事情负责。在本例中,使用JavaScript。shell当然会用它来回复。是的,谢谢,我需要它在shell中创建一些缺少的时间戳nparseInt
,因为没有存储额外的精度。除非你真的想“围捕”。在这种情况下,NumberLong(Math.ceil(1477958757748.9697))
。但实际上您应该使用BSON Date,因为它实际上在内部存储为时间戳值,并且更有用,比如Date(Math.ceil(1477958757748.9697))
。不要被字符串输出所愚弄,因为它在存储时实际上是一个数字。记住它是一个REPLNumberLong(parseInt(1477958757748.9697))
但实际上,这只是一个“shell”。你选择的语言真的对这些事情负责。在本例中,使用JavaScript。shell当然会用它来回复。是的,谢谢,我需要它在shell中创建一些缺少的时间戳nparseInt
,因为没有存储额外的精度。除非你真的想“围捕”。在这种情况下,NumberLong(Math.ceil(1477958757748.9697))
。但实际上您应该使用BSON Date,因为它实际上在内部存储为时间戳值,并且更有用,比如Date(Math.ceil(1477958757748.9697))
。不要被字符串输出所愚弄,因为它在存储时实际上是一个数字。记住这是回复