私はMEANスタックアプリケーションを持っています。私のデータベースで_idはMEANアプリケーションでObjectIdから文字列に変換されます
、文書には、同じようモンゴOBJECTIDました:
{ "_id" : ObjectId("57e15b1009cb82cafafafd73"), "name" : "Hello", "artist_id" : "world", "year" : "2000" }
しかし、私は私のフロントエンドでドキュメントを読み込む際に、_idは、文字列に変換されます、そして、私のオブジェクトはときに、このようになります。ブラウザでログイン:
何迷惑であることは、私は私のフロントエンド(既存のドキュメントを更新または削除)から自分のデータベースを変更したいとき、私はするために、文字列からのObjectIdに_idを変換しなければならないことである{ "_id" : "57e15b1009cb82cafafafd73", "name" : "Hello", "artist_id" : "world", "year" : "2000" }
データベース内のドキュメントをターゲットに設定してください... 私のノードアプリケーションでは、ID番号new ObjectId(stringId)
をシステマティックにマッサージする必要があります。なぜなら、ブラウザから送られたIDは文字列であるからです。
Obvisouly私は何かを逃しています。 私は物事をよりエレガントにするにはどうすればいいですか?
'new ObjectId(stringId)'については何も問題ありません。 JavaScriptに* ObjectId *型がないので、mongoのObjectIdメソッドを使用して1つにキャストする必要があります。 – Molda
'ObjectId'はJSONでサポートされている型ではなく、' String'への(必要な)変換です。 – robertklep
これは@Moldaで述べたように普通ですが、私はspring-data mongoドライバを使い、JavaのようにクラスIDをStringとしてマッピングしました。ObjectIdデータ型はありません。ドライバはほとんどの作業を行いますが、 'new ObjectId (id) 'を返します。ドライバーは、私たちが望むほど成熟していないかもしれません。 –