These will work correctly:
upsert({_id:FOO},
)
upsert({_id:FOO, key:BAR}, {$set: {other: 1}})
upsert({_id:FOO, key:BAR},
) // converted to the first example.
This must fail:
upsert({_id:FOO, key:BAR},
)
This can cause dup IDs but wont fail until/unless we get unique indexes working across shards:
upsert({_id:FOO, key:BAR}, {$set: {other:1}})
upsert({_id:FOO, key:BAZ}, {$set: {other:1}})