mongodb查询之find命令
来源:互联网 发布:深圳淘宝托管 编辑:程序博客网 时间:2024/06/05 17:58
我们首先新建一个集合 便于接下来的测试
$ for(var i=0;i<100;i++) db.user.insert({name:"xandy-"+i,age:i,sex:i%2==0?"man":"women"})
指定返回的健查询
只查询出只包含name健的数据
$ db.user.find({},{name:true}){ "_id" : ObjectId("5846b1d210ea2f9722021f2c"), "name" : "xandy-0" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2e"), "name" : "xandy-2" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2f"), "name" : "xandy-3" }{ "_id" : ObjectId("5846b1d210ea2f9722021f30"), "name" : "xandy-4" }{ "_id" : ObjectId("5846b1d210ea2f9722021f31"), "name" : "xandy-5" }.....
若是希望在查询中不包含age这个键的数据
db.user.find({},{age:false}){ "_id" : ObjectId("5846b1d210ea2f9722021f2c"), "name" : "xandy-0", "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1", "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2e"), "name" : "xandy-2", "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2f"), "name" : "xandy-3", "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f30"), "name" : "xandy-4", "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f31"), "name" : "xandy-5", "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f32"), "name" : "xandy-6", "sex" : "man" }.....
条件查询
“
我们找出age小于等于60又大于等于50的数据
$ db.user.find({age:{"$lte":60,"$gte":50}}){ "_id" : ObjectId("5846b1d210ea2f9722021f5e"), "name" : "xandy-50", "age" : 50, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f5f"), "name" : "xandy-51", "age" : 51, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f60"), "name" : "xandy-52", "age" : 52, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f61"), "name" : "xandy-53", "age" : 53, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f62"), "name" : "xandy-54", "age" : 54, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f63"), "name" : "xandy-55", "age" : 55, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f64"), "name" : "xandy-56", "age" : 56, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f65"), "name" : "xandy-57", "age" : 57, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f66"), "name" : "xandy-58", "age" : 58, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f67"), "name" : "xandy-59", "age" : 59, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f68"), "name" : "xandy-60", "age" : 60, "sex" : "man" }
不等于操作符“$ne”
我们找出age小于等于60又大于等于50并且“name”不包含”xandy-55”的数据
$ db.user.find({age:{"$lte":60,"$gte":50},name:{"$ne":"xandy-55"}}){ "_id" : ObjectId("5846b1d210ea2f9722021f5e"), "name" : "xandy-50", "age" : 50, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f5f"), "name" : "xandy-51", "age" : 51, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f60"), "name" : "xandy-52", "age" : 52, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f61"), "name" : "xandy-53", "age" : 53, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f62"), "name" : "xandy-54", "age" : 54, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f64"), "name" : "xandy-56", "age" : 56, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f65"), "name" : "xandy-57", "age" : 57, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f66"), "name" : "xandy-58", "age" : 58, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f67"), "name" : "xandy-59", "age" : 59, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f68"), "name" : "xandy-60", "age" : 60, "sex" : "man" }
OR查询
“$in” 可以用来查询一个键的多个值
我们查询 age是55 69 1 的数据
$ db.user.find({age:{"$in":[55,56,1]}}){ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1", "age" : 1, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f63"), "name" : "xandy-55", "age" : 55, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f64"), "name" : "xandy-56", "age" : 56, "sex" : "man" }
“$or”可以用来查询多个键的多个数据
我们查询age是55,58,61 或者name是”xandy-1” “xandy-99”的数据
$ db.user.find({"$or":[{age:{"$in":[55,58,61]}},{name:{"$in":["xandy-1","xandy-99"]}}]}){ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1", "age" : 1, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f63"), "name" : "xandy-55", "age" : 55, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f66"), "name" : "xandy-58", "age" : 58, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f69"), "name" : "xandy-61", "age" : 61, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f8f"), "name" : "xandy-99", "age" : 99, "sex" : "women" }
“$mod”取模 如果当前值除以第一个给定值 余数等于第二个给定值 就符合条件
我们查找取余2等于0的数据
$ db.user.find({age:{"$mod":[2,0]}}){ "_id" : ObjectId("5846b1d210ea2f9722021f2c"), "name" : "xandy-0", "age" : 0, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2e"), "name" : "xandy-2", "age" : 2, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f30"), "name" : "xandy-4", "age" : 4, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f32"), "name" : "xandy-6", "age" : 6, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f34"), "name" : "xandy-8", "age" : 8, "sex" : "man" }......
“$not”不符合条件的数据
我们查找取余2等于0不符合的数据
$ db.user.find({age:{"$not":{"$mod":[2,0]}}}){ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1", "age" : 1, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2f"), "name" : "xandy-3", "age" : 3, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f31"), "name" : "xandy-5", "age" : 5, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f33"), "name" : "xandy-7", "age" : 7, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f35"), "name" : "xandy-9", "age" : 9, "sex" : "women" }......
正则表达式查询
我们查询name包含0的数据
$ db.user.find({name:/0/}){ "_id" : ObjectId("5846b1d210ea2f9722021f2c"), "name" : "xandy-0", "age" : 0, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f36"), "name" : "xandy-10", "age" : 10, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f40"), "name" : "xandy-20", "age" : 20, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f4a"), "name" : "xandy-30", "age" : 30, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f54"), "name" : "xandy-40", "age" : 40, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f5e"), "name" : "xandy-50", "age" : 50, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f68"), "name" : "xandy-60", "age" : 60, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f72"), "name" : "xandy-70", "age" : 70, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f7c"), "name" : "xandy-80", "age" : 80, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f86"), "name" : "xandy-90", "age" : 90, "sex" : "man" }
数组查询
我们先穿件一个food集合 插入一条带有数组的数据
$ db.food.insert({fruit:["apple","pear","banana",'orange']})$ db.food.insert({fruit:["apple","pear","banana"]})$ db.food.insert({fruit:["apple","pear","orange"]})
我们用数组中一个元素就可以找到该条数据
$ db.food.find(){ "_id" : ObjectId("5846d2a8472eeea0031f3f67"), "fruit" : [ "apple", "pear", "banana", "orange" ] }{ "_id" : ObjectId("5846d466472eeea0031f3f68"), "fruit" : [ "apple", "pear", "banana" ] }{ "_id" : ObjectId("5846d473472eeea0031f3f69"), "fruit" : [ "apple", "pear", "orange" ] }
“$al”通过多个元素匹配数据
我们找出元素里既有apple又有orange的数据
$ db.food.find({fruit:{"$all":["apple","orange"]}}){ "_id" : ObjectId("5846d2a8472eeea0031f3f67"), "fruit" : [ "apple", "pear", "banana", "orange" ] }{ "_id" : ObjectId("5846d473472eeea0031f3f69"), "fruit" : [ "apple", "pear", "orange" ] }
“$size”通过指定数组元素的个数来查询数据
找出数组元素个数为3的数据
$ db.food.find({fruit:{"$size":3}}){ "_id" : ObjectId("5846d466472eeea0031f3f68"), "fruit" : [ "apple", "pear", "banana" ] }{ "_id" : ObjectId("5846d473472eeea0031f3f69"), "fruit" : [ "apple", "pear", "orange" ] }
findOne()
该语句只能返回一条数据
查找fruit的前2个元素
$ db.food.findOne({fruit:"orange"},{fruit:{"$slice":2}}){ "_id" : ObjectId("5846d2a8472eeea0031f3f67"), "fruit" : [ "apple", "pear" ]}
查找fruit的后两个元素
$ db.food.findOne({fruit:"orange"},{fruit:{"$slice":-2}}){ "_id" : ObjectId("5846d2a8472eeea0031f3f67"), "fruit" : [ "banana", "orange" ]}查找
fruit中1到3个元素
$ db.food.findOne({fruit:"orange"},{fruit:{"$slice":[1,3]}}){ "_id" : ObjectId("5846d2a8472eeea0031f3f67"), "fruit" : [ "pear", "banana", "orange" ]}
limit()限制查询结果的数量
$ db.user.find().limit(5){ "_id" : ObjectId("5846b1d210ea2f9722021f2c"), "name" : "xandy-0", "age" : 0, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2d"), "name" : "xandy-1", "age" : 1, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2e"), "name" : "xandy-2", "age" : 2, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f2f"), "name" : "xandy-3", "age" : 3, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f30"), "name" : "xandy-4", "age" : 4, "sex" : "man" }
skip()跳过指定查询条数
$ db.user.find().skip(10).limit(5){ "_id" : ObjectId("5846b1d210ea2f9722021f36"), "name" : "xandy-10", "age" : 10, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f37"), "name" : "xandy-11", "age" : 11, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f38"), "name" : "xandy-12", "age" : 12, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f39"), "name" : "xandy-13", "age" : 13, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f3a"), "name" : "xandy-14", "age" : 14, "sex" : "man" }
sort()对结果进行排序 1代表正向 -1代表反向
$ db.user.find().limit(5).sort({age:-1}){ "_id" : ObjectId("5846b1d210ea2f9722021f8f"), "name" : "xandy-99", "age" : 99, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f8e"), "name" : "xandy-98", "age" : 98, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f8d"), "name" : "xandy-97", "age" : 97, "sex" : "women" }{ "_id" : ObjectId("5846b1d210ea2f9722021f8c"), "name" : "xandy-96", "age" : 96, "sex" : "man" }{ "_id" : ObjectId("5846b1d210ea2f9722021f8b"), "name" : "xandy-95", "age" : 95, "sex" : "women" }
count()对查询结果进行计数
$ db.user.find({age:{"$mod":[2,0]}}).count()50
0 0
- mongodb查询之find命令
- mongoDB查询之find
- MongoDB查询文档之find函数
- mongodb查询find
- mongodb 命令 - find
- MongoDB查询命令详解
- mongoDB 查询命令
- mongodb 查询命令
- nosql mongodb 学习-----第二天 高级操作之查询命令
- MongoDB小结15 - find【查询条件$ne】
- MongoDB小结16 - find【查询条件$in】
- MongoDB小结17 - find【查询条件$or】
- MongoDB小结18 - find【查询条件$not】
- MongoDB小结19 - find【查询条件$all】
- MongoDB小结20 - find【查询条件$size】
- mongoDB(4):find()查询、分页、游标
- mongodb笔记之查询
- MongoDB之分页查询
- scikit-learn源码学习之cluster.mean_shift.estimate_bandwidth
- httpclient 4.5.2 学习随笔(3)
- 利用conda在Hadoop-stream中使用定制python解释器
- Iptables实例练习
- sql group by 字段合并
- mongodb查询之find命令
- machine learning pre-learning (AI dairy 1)
- Html 复习3
- Mac版 office 2016 破解工具
- PHP+APACHE+MYSQL的配置方法
- 我的第一篇博客
- jQuery中on()函数的用法笔记
- Bootstrap学习总结笔记(1)--环境配置
- 纯手写PHP的WEB应用程序