Ptr container: MarshalBSON() 'listed'->1 MarshalBSON() 'mapped'->2 UnmarshalBSON() text listed|1 UnmarshalBSON() text mapped|2 ! ptr == ptr2 ptr1: {['listed'->1] map[ptrKey:'mapped'->2]} ptr2: {['listed'->1] map[ptrKey:'mapped'->2]} Obj container: MarshalBSON() 'listed'->1 UnmarshalBSON() text listed|1 UnmarshalBSON() Error unmarshaling objContainer: error decoding key index.objKey: wrong number of pieces: 1 * obj1 != obj2 obj1: {[{listed 1}] map[objKey:{mapped 2}]} obj2: {[{listed 1}] map[]}