MongoDB铸造双到长

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

我正在尝试将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 :                  
@(shell):1:1
>
有没有其他办法代替NumberLong? examle的NumberPrint不适用于整数:

> NumberInt(12.6);
NumberInt(12)                     
>

在Mongo中如何做到这一点?

NumberLong(parseInt(1477958757748.9697))
但实际上,这只是“shell”。你选择的语言真的对这些事情负责。在本例中,使用JavaScript。shell当然会用它来回复。是的,谢谢,我需要它在shell中创建一些缺少的时间戳n
parseInt
,因为没有存储额外的精度。除非你真的想“围捕”。在这种情况下,
NumberLong(Math.ceil(1477958757748.9697))
。但实际上您应该使用BSON Date,因为它实际上在内部存储为时间戳值,并且更有用,比如
Date(Math.ceil(1477958757748.9697))
。不要被字符串输出所愚弄,因为它在存储时实际上是一个数字。记住它是一个REPL
NumberLong(parseInt(1477958757748.9697))
但实际上,这只是一个“shell”。你选择的语言真的对这些事情负责。在本例中,使用JavaScript。shell当然会用它来回复。是的,谢谢,我需要它在shell中创建一些缺少的时间戳n
parseInt
,因为没有存储额外的精度。除非你真的想“围捕”。在这种情况下,
NumberLong(Math.ceil(1477958757748.9697))
。但实际上您应该使用BSON Date,因为它实际上在内部存储为时间戳值,并且更有用,比如
Date(Math.ceil(1477958757748.9697))
。不要被字符串输出所愚弄,因为它在存储时实际上是一个数字。记住这是回复