mongodb查询数组的子集

Jen*_*sen 6 arrays subset mongodb keyword-search

我有一个_keywords字符串数组的字段.我想获取哪些文件_keywords是查询数组的超集.

例如:

db.article.insert({'_keywords': ['foo', 'foo1', 'foo2']})
Run Code Online (Sandbox Code Playgroud)

当我查询['foo','foo1','foo2']的子集时,我想要检索此记录,例如:['foo'],['foo1','foo2']

编辑:类似于:

db.article.find({'_keywords': {$contains: array}})
Run Code Online (Sandbox Code Playgroud)

Dmi*_*try 12

使用$all运营商:

db.article.find( { _keywords: { $all: [ 'foo1', 'foo2' ] } } );
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all


diy*_*ism 11

在MongoDb中,对于数组字段:

"$in:[...]" means "intersection" or "any element in",
"$all:[...]" means "subset" or "contain",
"$elemMatch:{...}" means "any element match"
"$not:{$elemMatch:{$nin:[...]}}" means "superset" or "in"
Run Code Online (Sandbox Code Playgroud)