私は個人的にあなたのコードを非難します。正しい方法でコーディングすることで、アプリケーションでこれを完全に回避できます。比較するためにコード内の文字列に変換し、ObjectId
のように見えるものを確認します 実際にはObjectId
として使用されます 。
ObjectId
の間で注意するのは良いことです (http://docs.mongodb.org/manual/reference/object-id/)そしてそれは16進表現であり、実際には12バイトの違いがあります。ObjectId
12バイトであり、16進表現は24です。
ストレージ効率だけでなく、インデックスについても重要です。小さいからだけでなく、ObjectId
インデックスの一部のみがロードされるようにするために、特別な方法で使用できます。使用される部品。これは、一意性を確保するためにそのインデックスの最新部分のみをロードする必要がある挿入時に最も顕著になります。 16進表現では、このような動作を保証することはできません。
OjbectId
は使用しないことを強くお勧めします の16進表現。 「生活を楽にしたい」場合は、別の_id
を作成することをお勧めします。 これは小さいですが、どういうわけか同じようにユニークでインデックスに優しいです。