Meine Vermutung ist, dass sys.inspect
interpretiert eine ObjectId
als ein Objekt, das eine id
enthält Eigentum. Das sehen Sie im Dump.
MongoDB behandelt die ObjectId als 12-Byte-Binärwert, nicht als Objekt. MongoDB kennt also keine id
Eigentum. Deshalb liefert die folgende Abfrage kein Ergebnis:
findOne({_id: {id: item._id.id}}, collection)
Das Folgende funktioniert, da es beide Werte einfach als Binärwerte behandelt:
findOne({_id: item._id}, collection)