在 MongoDB 中,我们在使用 find 查询记录的数组字段时,用 $all
修饰符,是需要满足所有条件的,$in
主要满足数组中的一项就可以被查出来。
db_name.collection_name.find({filed:{$in:[val1, val2]}});
参数 | 描述 |
---|---|
db_name | 数据库名 |
collection_name | 集合名 |
filed | 要查询的字段 |
val1,val2 | filed1 的只要包含 val1 或者 val2 即可 |
查询 filed1 的值包含 val1 或者 val2 的记录。
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们使用 insertMany 插入三条记录,具体命令如下:
db.haicoder.insertMany([{"url":"haicoder.net", "course":["Python", "Mysql", "MongoDB"]}, {"url":"haicoder", "course":["Java", "Cpp", "Python"]}, {"url":"m.haicoder.net", "course":["Golang", "MongoDB", "Mysql"]}])
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了三条记录,现在,我们使用 find 对数组进行 in 查询,具体命令如下:
db.haicoder.find({"course":{$in:["Java", "Golang"]}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,此时查到了 course 的字段包含 Java 或者 Golang 的所有记录,我们再次使用如下命令,同样进行 in 查询,具体命令如下:
db.haicoder.find({"course":{$in:["Cpp", "Mysql"]}}, {_id:0})
执行完毕后,此时,如下图所示:
我们看到,同样实现了对数组进行 in 查询。
在 MongoDB 中,我们在使用 find 查询记录的数组字段时,用 $all
修饰符,是需要满足所有条件的,$in
主要满足数组中的一项就可以被查出来。