我正在使用MongoDB的Perl綁定,而且我似乎在插入數字時,它們有時會算作字符串。當我將數字加0時,它會被轉換。如何在MongoDB中查詢或插入特定類型?
有沒有一種方法,用MongoDB Perl綁定來指定插入時的數據類型?
是否還有一種方法來查詢特定類型?
一個例子類型的查詢可能是這樣的,如果有一個「$型」功能:
db.c.find({ key: { '$type': 'NumberLong' } });
我正在使用MongoDB的Perl綁定,而且我似乎在插入數字時,它們有時會算作字符串。當我將數字加0時,它會被轉換。如何在MongoDB中查詢或插入特定類型?
有沒有一種方法,用MongoDB Perl綁定來指定插入時的數據類型?
是否還有一種方法來查詢特定類型?
一個例子類型的查詢可能是這樣的,如果有一個「$型」功能:
db.c.find({ key: { '$type': 'NumberLong' } });
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操作符一起測試。
看來,當我在Perl中向數字添加零時,它總是以數字形式存儲,如果不是,它有時會以字符串形式存儲。不過,我會看看這個「$ type」操作符。 – Neil 2011-05-05 00:46:29
使用looks_like_number參數在你的Perl的MongoDB驅動 http://search.cpan.org/~friedo/MongoDB-0.702.2/lib/MongoDB/BSON.pm#looks_like_number
工作就像我
也許一個魅力你想有一個語言,其中字符串是字符串和數字號碼? :) – 2011-04-29 02:53:31