How to check if an array field contains a unique value or another array in MongoDB?
Try this out:
db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3
My experience is that for (2) the following solution is much faster than the one with "$all":
db.blogpost.find({ $and: [ {tags: 'tag1'} ,{tags: 'tag2'} ] });
but to be honest, I do not not why. I would be interested in, if anyone knows.