如何在Perl中使用特定数据类型插入mongoDB?

时间:2013-01-17 19:45:49

标签: perl mongodb

例如,在MySQL中,您有数据类型,如varchar,int等。 我用Google搜索并找到http://docs.mongodb.org/manual/core/document/#bson-types页面。好像用字符串你只需要使用''或“”。在没有指定类型的情况下,似乎会自动识别整数。如何将这样的东西插入到Perl中的mongoDB集合中看起来像?

Example:
{
 "Name" : "John"
 "Age" :   20
 "Weight" : 180.5
 "Dateofbirth" : 01/01/1990
}

我想要在db中指定数据类型的原因是我可以使用运算符来比较数字。如果是文字我不能那样做。 到目前为止,我在想Perl:

$my_collection->insert({
                        'Name' : "$Name",
                        'Age'  : $age,
                         'Weight':$weight,
                         'Dateofbirth': $datevar, 
                       } );

在上面的代码中,我不确定如何指定数据类型。例如,告诉Weight是Double不是整数或字符串。

2 个答案:

答案 0 :(得分:1)

对于数字类型,Perl MongoDB驱动程序将通过Perl认为的数字。 Perl有一个内部标志,用于跟踪某些内容是浮点数还是整数。 MongoDB驱动程序将使用32或64位整数,具体取决于您的平台。如果它看起来像是Perl的字符串,它将作为字符串存储在MongoDB中。

对于日期类型,您需要将日期包装在DateTime对象中,如果您使用dt_type属性,则需要DateTime::Tiny

答案 1 :(得分:1)

使用Perl MongoDB驱动程序中的looks_like_number参数

使用MongoDB :: BSON $ MongoDB :: BSON :: looks_like_number = 1;

https://metacpan.org/pod/MongoDB::BSON#looks_like_number