You are looking at the docs for v4.x. You can check out this page for Mongoid v3.x if you haven't upgraded yet.

Performance

The data used in the metrics is that of what would be considered a fairly standard application in MongoDB that Mongoid could manage.

* Performance metrics done on a 2.93 GHz i7 iMac / 8GB RAM, OSX 10.7, Mongoid 2.2.0

* The script to run the performance metrics can be found here.

Notes

Many to many relations are not recommended for over 10,000 documents when using MRI due to the garbage collector taking over 90% of the run time when calling #build or #create. This is due to the large array appending occuring in these operations.

When performing appends to one to many relations we execute in batch (appending all at once instead of one at a time) due to the slow performance of MongoDB's $push atomic operator.
Operation Time Ops/sec
root (1,000,000 operations)
Model#create 417.93 2,392
Model#all.each 40.87 24,476
Model#find 0.001
Model#save 487.93 2,049
Model#update_attribute 339.54 2,945
embedded 1-n (10,000 operations)
relation#build 2.253 4,438
relation#clear 1.230 8,130
relation#create 4.899 2,041
relation#count 0.011
relation#delete_all 1.377 7,262
relation#push (batch) 3.496 2,860
relation#each 0.027 370,370
relation#find 0.044
relation#delete 0.045
embedded 1-1 (10,000 operations)
relation#= 3.902 2,562
relational 1-n (100,000 operations)
relation#build 18.521 5,399
relation#clear 4.085 24,479
relation#create 45.464 2,199
relation#count 0.051
relation#delete_all 5.596 17,869
relation#push (batch) 34.551 2,894
relation#each 0.055 1,818,181
relation#find 0.020
relation#delete 0.410
relational 1-1 (100,000 operations)
relation#= 54.991 1,818
relational n-n (10,000 operations)
relation#build 1.325 7,547
relation#clear 0.350 28,571
relation#count 0.001
relation#delete_all 0.001 10,000,000
relation#push (batch) 2.628 3,805
relation#each 0.005 2,000,000
relation#find 0.010
relation#delete 0.060
eager loading 1-1 (10,000 docs)
Model#each (without eager load) 5.617 1,780
Model#includes (with eager load) 2.966 3,371
eager loading 1-n (10,000 docs)
Model.all#each (without eager load) 4.300 2,325
Model#includes (with eager load) 2.094 4,775