您如何在MongoDB中查询或插入特定类型?

时间:2011-04-28 20:58:10

标签: perl mongodb

我正在使用MongoDB的Perl绑定,似乎当我插入数字时,它们有时被视为字符串。当我向数字加0时,它会被转换。

使用MongoDB Perl绑定有没有办法在插入时指定数据类型?

是否还有一种查询特定类型的方法?

如果存在“$ type”函数,示例类型查询可能如下所示:

db.c.find({ key: { '$type': 'NumberLong' } });

2 个答案:

答案 0 :(得分:2)

MongoDB确实包含一个$ type运算符,用于检查bson数据类型:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24type

不幸的是在Perl中你受到语言语义的限制...... Perl中没有Scalar的Number数据类型。

如果Perl决定将您的值存储为字符串,那么它将如何转到BSON,$ type可能无法正确匹配。

然而它看起来像Perl驱动程序尝试。测试Perl是否可以将字符串保存为一个数字,其中case.it.is.stored这样;您可能希望与$ test运算符一起测试它。

答案 1 :(得分:0)

在perl MongoDB驱动程序中使用looks_like_number参数 http://search.cpan.org/~friedo/MongoDB-0.702.2/lib/MongoDB/BSON.pm#looks_like_number

像我一样的魅力