$ set toán tử được sử dụng trên upert cũng vậy. Vì vậy, thật vô lý khi tham chiếu cả hai trường giống nhau trên $ set và $ setOnInsert .
Chỉ cần thử điều này trên một bộ sưu tập trống:
db.items.remove();
db.items.update({},{$set:{a:1},$setOnInsert:{b:2}},{upsert:1})
db.items.find({});