MongoDB高级查询 互动版

$all匹配所有

这个操作符跟SQL 语法的in 类似,但不同的是, in 只需满足( )内的某一个值即可, 而$all 必须满足[ ]内的所有值,例如:

db.users.find({age : {$all : [6, 8]}});

可以查询出:

{name: 'David', age: 26, age: [ 6, 8, 9 ] }

但查询不出:

{name: 'David', age: 26, age: [ 6, 7, 9 ] }

首先创建含有数组的数据:

db.users.insert(
    {"name":"David",age:26,course:["js","Node","Mongodb"]},
    {"name":"Tom",age:26,course:["js","Node","Mongoose"]})

查询在users中course字段同时包含"js"和"Mongodb"的文档记录:

db.users.find({course:{$all:["js","Mongodb"]}});