MongoDB - $ mis à jour ou à pousser l'élément Array

Dans les produits de la collection, j'ai un Tableau de recentviews qui a plus de 2 champs viewedBy & viewedDate.

Dans un scénario si j'ai déjà un record avec viewedbypuis j'ai besoin de le mettre à jour. Pour l'e.g si j'ai array comme ceci :-

"recentviews" : [ 
        {
            "viewedby" : "abc",
            "vieweddate" : ISODate("2014-05-08T04:12:47.907Z")
        }
    ]

Et l'utilisateur est abcj'ai donc besoin de mise à jour ci-dessus & si il n'y a pas de record pour abc je $push.

J'ai essayé $set comme suit :-

db.products.update( { _id: ObjectId("536c55bf9c8fb24c21000095") },
                    { $set: 
                        { "recentviews": 
                            { 
                                viewedby: 'abc',
                                vieweddate: ISODate("2014-05-09T04:12:47.907Z") 
                            }
                        } 
                     }
            )

La requête ci-dessus efface tous mes autres éléments dans le Tableau.

source d'informationauteur Anup