2011-04-28 86 views
1

我正在使用MongoDB的Perl綁定,而且我似乎在插入數字時,它們有時會算作字符串。當我將數字加0時,它會被轉換。如何在MongoDB中查詢或插入特定類型?

有沒有一種方法,用MongoDB Perl綁定來指定插入時的數據類型?

是否還有一種方法來查詢特定類型?

一個例子類型的查詢可能是這樣的,如果有一個「$型」功能:

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

也許一個魅力你想有一個語言,其中字符串是字符串和數字號碼? :) – 2011-04-29 02:53:31

回答

2

MongoDB的確實包含$型運營商針對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操作符一起測試。

+0

看來,當我在Perl中向數字添加零時,它總是以數字形式存儲,如果不是,它有時會以字符串形式存儲。不過,我會看看這個「$ type」操作符。 – Neil 2011-05-05 00:46:29