Có vẻ như $ addToSet đang thực hiện tương tự như lệnh của bạn: $ push with a $ ne check . Cả hai sẽ là O (N)
https://github.com/mongodb /mongo/blob/master/src/mongo/db/ops/update_internal.cpp
nếu tốc độ thực sự quan trọng thì tại sao không sử dụng hàm băm:
thay vì:
{'$addToSet': {'a':1}}
{'$addToSet': {'a':10}}
sử dụng:
{$set: {'a.1': 1}
{$set: {'a.10': 1}