indexing - Understanding mongodb find query more -
just quick question in relation following mongodb query:
var queryparams = { $or: [ {'stats.created_by': userid}, {'user_list.user_id': userid}, {'invite_list.user_id': userid}, {'invite_list.email': useremail} ], deleted: false };
this query given itemmodel.find(queryparams); - im trying understand table scan impact here? understanding full scan based on deleted attribute , filter on $or clause.
ok, ran following explain , items scanned index on deleted.
db.items.find({$or: [ {'stats.created_by': '559cd76338e42c533a83b8a7'}, {'user_list.user_id': '559cd76338e42c533a83b8a7'}, {'invite_list.user_id': '559cd76338e42c533a83b8a7'}, {'invite_list.email': 'some@something.com'} ], deleted: false}).explain();
can make improvements here?
thanks.
j
db.getcollection('items').createindex({ deleted: 1 }); speeds query , ignores $or since filter on result set. might @ making query more restrictive.
Comments
Post a Comment