Как можно сделать это с Монго в одном [атомном] заявление:MongoDB: вставка на дубликат ключа обновления
insert mytable set MyUniqueKey = ?, X = ? on duplicate key update Y = ?
При выполнении этого оператора в первый раз он будет устанавливать значение X, но после того, что он будет только обновить Y.
Только MyUniqueKey является частью уникального ключа и должен искать дубликаты.
Эта проблема была закрыта в MongoDB 2.4, и теперь вы можете использовать ['$ setOnInsert'] (http://docs.mongodb.org/manual/reference/operator/setOnInsert /). – str