arraysmongodbsubsetkeyword-search

mongodb query subset of an array


I have a field _keywords which is an array of strings. I want to get documents where _keywords is a super-set of the query array.

For example:

db.article.insert({'_keywords': ['foo', 'foo1', 'foo2']})

I want to retrieve this record when I query subset of ['foo', 'foo1', 'foo2'], eg: ['foo'] or ['foo1', 'foo2']

EDIT: something like:

db.article.find({'_keywords': {$contains: array}})

Solution

  • Use the $all operator:

    db.article.find( { _keywords: { $all: [ 'foo1', 'foo2' ] } } );
    

    Source: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all