地下这种方法必须按照文档格式查询,位置不能错,不能多,不能少,不能写错
db.表.find({字段(数组):{‘$all’:[v1,v2]}})
////数组元素值 存在 v1和v2 即可(v1,v2顺序不做要求)(存在多个元素)
列如:db.goods.find({color:{‘$all’:[‘red’,’white’]}}) //只要同时有黑色和绿色就可以查询出来,跟上面的那种语法的区别是没有顺序要求。
限制查询字段我们刚才的查询,是显示的所有的信息字段,但是呢,实际情况操作中,我们不一定全部都用到,那么可以就需要做一个字段输出查询的一个限制。如果全部取出来的话,对于内存和带宽都一定影响,我们按需去操作就可以了。
db.表.find({条件},{字段:1/0,字段:1/0}
1: 查询此字段
0: 排除此字段
find()方法的第一个参数必须要有,如果没有条件的话,就是{}
接下来我们先查询所有,看都有什么
然后查name字段
查不包括name字段
带条件查
底下是查询年龄在20的字段,name:1是表示显示name字段,id:0是表示不显示该字段
但是,下面这样是不可以的:
规则:要输出就全部输出,要不输出就全部不输出。_id除外,可以随意设置0,1。设置为全部输出
设置为全部不输出
设置为0的字段都不显示了
一个0一个1报错:要是0都是0,要是1都是1。
我们先查所有数据
$or查询,多个条件,满足其一即可db.goods.find({'$or':[{price:2000},{num:{'$lte':200}}]})
查询goods表内的价钱在2000或者num小于等于200,满足于其一即可
$in和$nin:
in:在里面
nin:不在里面
先查询所有
属于20,21,22,的数据
db.text.find({age:{'$in':[20,21,22]}})
不属于20,21,22的数据
db.text.find({age:{'$nin':[20,21,22]}})