sql >> データベース >  >> NoSQL >> MongoDB

MongoDB:クラスjava.lang.Doubleをクラスjava.lang.Longにキャストできません

    問題はおそらく、示されたフィールドのいずれかが実際にはDoubleとして格納されていることです。 Longの代わりに 。

    ソースコード DocumentgetLongのクラス 次の方法を見つけることができます:

    return (Long) get(key);
    

    このキャストは、Mongoドライバーによって報告されたエラーの原因となっているキャストです。

    タイムスタンプの一部がJavascriptとNodeJS、おそらくMongoシェルで作成されている可能性はありますか?その場合、タイムスタンプの作成方法によっては、フィールドの値をdoubleとして挿入できます。 数字がJavascriptで表される方法のため。

    mongoシェルのドキュメントによると :

    そして

    この問題は、SOのこの質問 。かなり古いですが、問題の説明になる可能性があります。

    この記事 、またかなり古いものであり、問​​題に直接関係していませんが、いくつかの追加の背景を提供します。



    1. Linode 512 VPSでMongoDBを実行することの実現可能性?

    2. redisを使用して、socket.ioおよびNodeJとのリアルタイムチャットを構築します

    3. MongoDBは一度に複数のコレクションをクエリします

    4. MongoDBfindAndModify。それは本当に原子ですか?クローズドアップデートソリューションの作成を支援する