$set operator digunakan pada upsert juga. Jadi tidak masuk akal untuk merujuk bidang yang sama di $set dan $setOnInsert .
Coba saja ini di koleksi kosong:
db.items.remove();
db.items.update({},{$set:{a:1},$setOnInsert:{b:2}},{upsert:1})
db.items.find({});