Brug af objekter som _id i MongoDB
Det kan være risikabelt at bruge objekter som _id-felter i MongoDB.
Detaljen fortjener en tydelig advarsel, men er nem at overse i den officielle
dokumentation:
"Unlike JavaScript objects, the fields in a BSON document are ordered."
Det betyder, at man utilsigtet kan have både { _id: { name: "Launchpad", surname: "McQuack" } }
og { _id: { surname: "McQuack", name: "Launchpad" } } i den samme collection.
Jeg har heldigvis kun mødt problemet én gang i produktionskode, og det var for mange år siden. Jeg ser dog stadig objekter brugt som id'er. Det samme problem opstår, når et objekt hashes uden først at sortere dets properties. Derfor skrev jeg dette korte indlæg.