Create compound index
Ascending userId + descending createdAt index
db.orders.createIndex({userId: 1, createdAt: -1}, {background: true})
More mongodb commands
-
db.orders.aggregate([{$match:{status:'paid'}},{$group:{_id:'$userId',total:{$sum:'$amount'}}},{$sort:{total:-1}},{$limit:10}])Top 10 users by paid order amount
-
rs.printSecondaryReplicationInfo()Show secondary lag and oplog window
-
db.currentOp({active:true, secs_running:{$gt:5}})List operations running longer than 5 seconds
-
mongodump --uri='mongodb://localhost:27017' --db=mydb --out=/backup/$(date +%F)Dump all collections in a database to BSON files
-
mongosh --eval 'rs.status().members.forEach(m=>print(m.name,m.stateStr,m.optimeDate))'Per-member state and last applied optime; spot lagging or unhealthy secondaries