Ich bin auf genau das gleiche Problem gestoßen und es gab keine einfache Lösung für <2.4, aber seit 2.4 das $setOnInsert Operator lässt Sie genau das tun.
db.collection.update( <query>,
{ $setOnInsert: { "firstTime": <TIMESTAMP> } },
{ upsert: true }
)
Siehe die 2.4 Versionshinweise von setOnInsert für weitere Informationen.