Сблъсках се с абсолютно същия проблем и нямаше просто решение за <2.4, но от 2.4 $setOnInsert оператор ви позволява да направите точно това.
db.collection.update( <query>,
{ $setOnInsert: { "firstTime": <TIMESTAMP> } },
{ upsert: true }
)
Вижте бележките по изданието 2.4 на setOnInsert за повече информация.