Roman Klimenko
EN

Brug af objekter som _id i MongoDB

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.