mongoで_idsを文字列として生成したいと思います。これらは、クライアントに送り返したり、プログラムの他の部分で使用したりするときに、はるかに使いやすくなります。今、私はそれらをすべてこれらのものの文字列に変換してから、クエリを実行するためにそれらを元に戻します。
しないアイデアや理由はありますか?
mongoで_idsを文字列として生成したいと思います。これらは、クライアントに送り返したり、プログラムの他の部分で使用したりするときに、はるかに使いやすくなります。今、私はそれらをすべてこれらのものの文字列に変換してから、クエリを実行するためにそれらを元に戻します。
しないアイデアや理由はありますか?
_idは好きなように設定できます。ObjectIdを作成して文字列に変換し、実際のObjectIdの代わりに文字列を保存することもできます。ここで失う主なものはコンパクトさです。失うことになるマイナーなことは、日付など、ObjectIdをキャストせずにObjectIdから値を抽出する機能です。
例:
> var newId = new ObjectId();
> db.test.insert({_id:newId, x:"test"});
> db.test.find();
{ "_id" : ObjectId("4f94c2a11a6bbec3872cb315"), "x" : "test" }
> db.test.insert({_id:newId.str, x:"test"});
> db.test.find();
{ "_id" : ObjectId("4f94c2a11a6bbec3872cb315"), "x" : "test" }
{ "_id" : "4f94c2a11a6bbec3872cb315", "x" : "test" }
更新:これを行うには、ObjectIdに再キャストする必要があります。
> var newId = new ObjectId();
> newId.getTimestamp();
ISODate("2012-04-23T03:22:56Z")