コレクションに財務データを挿入しようとしているので、Javascript の数値を明示的に NumberLongs にキャストしたいと考えています。残念ながら、以下は機能しません。
var myValue = parseInt('13', 10);
Finance.insert({
bal1: NumberLong(myValue),
});
Meteorでこれを行う正しい方法は何ですか?
コレクションに財務データを挿入しようとしているので、Javascript の数値を明示的に NumberLongs にキャストしたいと考えています。残念ながら、以下は機能しません。
var myValue = parseInt('13', 10);
Finance.insert({
bal1: NumberLong(myValue),
});
Meteorでこれを行う正しい方法は何ですか?
私自身の質問に答えます。私の投稿によると: https://groups.google.com/forum/#!topic/meteor-talk/o_co6nRjoYU
Meteor が MongoDB ドライバーを 1.3.7 から 1.3.17 にアップグレードしたとき、0.6.5 でキャスト オン リードの問題は解決されたと思います。
https://github.com/mongodb/node-mongodb-native/blob/master/HISTORY :
1.3.13 2013-07-31
- Added promoteLongs option for to allow for overriding the promotion of Longs to Numbers and return the actual Long.
そしてhttp://mongodb.github.io/node-mongodb-native/api-generated/db.htmlで:
Db()
promoteLongs {Boolean, default:true}, when deserializing a Long will fit it into a Number if it’s smaller than 53 bits
確認したところ、Meteor は確かに番号を再び受け取りました。
それを考慮して:
...私たちは今良いはずです:)
var myValue = parseInt('13', 10);
Finance.insert({
stats: {
bal1: NumberLong(myValue)
}
});
メソッドとしてNumberLong()
存在する限り、上記は機能するはずです。Mongo は、ドキュメントに従って探している数値型をサポートしています。