Natknąłem się na dokładnie ten sam problem i nie było prostego rozwiązania dla <2.4, jednak od 2.4 $setOnInsert operator, zróbmy dokładnie to.
db.collection.update( <query>,
{ $setOnInsert: { "firstTime": <TIMESTAMP> } },
{ upsert: true }
)
Zobacz informacje o wersji 2.4 setOnInsert aby uzyskać więcej informacji.