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