Playername is an indexed field, so having two instances of an indexed field is even weirder than an unindexed field.
The value “ahmer#44164” already exists in another document, so mongodb throws an error if i try to set the first playername to “ahmer#44164", but not if I do it on the second field
Querying for the playername “ahmer#44164” yields only one document
Steps to reproduce:
make a blank doc
right click the doc in robo3t and click edit
add the duplicate keys
save
I found this question on stackoverflow but it has no explanation.
The underlying BSON storage format in MongoDB uses an ordered object representation rather than a dictionary, so technically duplicate fields are allowed (but not commonly used).
BSON documents may have more than one field with the same name. Most MongoDB interfaces, however, represent MongoDB with a structure (e.g. a hash table) that does not support duplicate field names. If you need to manipulate documents that have more than one field with the same name, see the driver documentation for your driver.
I would consider creation of duplicate fields when creating/editing a document via an Admin UI an unexpected outcome. The typical mental model is that MongoDB documents are JSON-like with additional field types.
Unfortunately Robo3T is not actively maintained and embeds a specific version of the mongo shell rather than using the driver API. It has a growing backlog of bugs and compatibility issues that are not being triaged.
I strongly recommend using an actively developed MongoDB admin UI such as MongoDB Compass.
Did you verify if one of the field name is “playername” while the other is "playername "? The trailing blank at the end does not show in the GUI but it makes the field name differents. That possibility was mentionned in the link you provided. You should connect with the shell and print the document from there.