Mongodb查询

摘要:
/i} )//常规查询。值是表达式db.food。发现符合PCRE//查询数组。野果中同时含有“苹果”和“香蕉”记录db.food.find//查询数组。在田间水果中,第三个元素是记录db。查找//查询数组。使用3个数组元素查询记录。不能使用db。emp和$size FindOne//之前的其他运算符要查询数组,只返回数组中的前十个注释。您还可以{“$s切片”:-10},{“$slice”:[23,10]};最后10个和中间10个db.userinfo。查找//嵌套查询db.blog。分别返回find//。嵌套查询仅在嵌套元素为数组时使用。对于复杂的查询,$where非常方便,但效率很低。

https://www.cnblogs.com/t2xingzhe/p/3555268.html

数据库查询

db.ser.find()#select * from ser;
只输出id和time字段,第一个参数为查询条件,空代表查询所有
db.ser.find({"name" : scott})#select * from ser where name='scott'; 
db.ser.find({},{id: 1,time:1})#select id,time from ser;
查询根据name:scott,time字段的记录
db.ser.find({"name":"scott"},{time:1})#select time from ser where name='scott';
根据name:scott,查询ID,time字段的记录
db.ser.find({"name":"scott"},{ID:1,time:1})#select id,time from ser where name='scott';
根据多个条件查询记录,不显示content
db.ser.find({"objectId":"P400000800","type":"equipment"},{content:0})#select 除content的列 from uer where "objectId"="P400000800";
根据时间查询指定范围的数据,$lt(<) $lte(<=) $gt(>) $gte(>=) $ne(<>)
db.test.find({"gmtTime" : {"$ne":"2018-09-24T3:33:45Z"}}) select * from test where gmtTime <> "joe" 
db.test.find({"gmtTime":{"$lt":ISODate("2018-09-24T3:33:45Z")}})
db.test.find({"gmtTime":{"$gt":ISODate("2017-09-24T3:33:45Z")}})
db.test.find({"gmtTime":{"$gte":ISODate("2018-01-09T14:24:40Z"),"$lt":ISODate("2018-01-09T14:40:43Z")}})

db.emp.find({"ticket_no" : {"$in" : [725, 542, 390]}}) #select * from emp where ticket_no in (725, 542, 390) 
db.emp.find({"ticket_no" : {"$nin" : [725, 542, 390]}}) #select * from emp where ticket_no not in (725, 542, 390) 
db.emp.find({"$or" : [{"ticket_no" : 725}, {"winner" : true}]}) #select * from emp where ticket_no = 725 or winner = true ;
db.emp.find({"id_num" : {"$mod" : [5, 1]}}) #select * from emp where (id_num mod 5) = 1 
db.emp.find({"$not": {"age" : 27}}) #select * from emp where not (age = 27) 
db.emp.find({"username" : {"$in" : [null], "$exists" : true}}) #select * from emp where username is null // 如果直接通过find({"username" : null})进行查询,那么连带"没有username"的纪录一并筛选出来 
db.emp.find({"name" : /joey?/i}) // 正则查询,value是符合PCRE的表达式 
db.food.find({fruit : {$all : ["apple", "banana"]}}) // 对数组的查询, 字段fruit中,既包含"apple",又包含"banana"的纪录 
db.food.find({"fruit.2" : "peach"}) // 对数组的查询, 字段fruit中,第3个(从0开始)元素是peach的纪录 
db.food.find({"fruit" : {"$size" : 3}}) // 对数组的查询, 查询数组元素个数是3的记录,$size前面无法和其他的操作符复合使用 
db.emp.findOne(criteria, {"comments" : {"$slice" : 10}}) // 对数组的查询,只返回数组comments中的前十条,还可以{"$slice" : -10}, {"$slice" : [23, 10]}; 分别返回最后10条,和中间10条 
db.userinfo.find({"name.first" : "Joe", "name.last" : "schere"}) // 嵌套查询 
db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套的元素是数组时使用, 
db.foo.find({"$where" : "this.x + this.y == 10"}) // 复杂的查询,$where当然是非常方便的,但效率低下。对于复杂查询,考虑的顺序应当是 正则 -> MapReduce -> $where 
db.foo.find({"$where" : "function() { return this.x + this.y == 10; }"}) // $where可以支持javascript函数作为查询条件 
db.foo.find().sort({"x" : 1}).limit(1).skip(10); // 返回第(10, 11]条,按"x"进行排序; 三个limit的顺序是任意的,应该尽量避免skip中使用large-number

db.mobile.find({name:/guido/}); #select * from mobile where name like "%guido%"; 
db.mobile.find({name:/^guido/});  #select * from mobile where name like "guido%";

免责声明:文章转载自《Mongodb查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇adb名称操作模拟器ORACLE数据库/PLSQL中文乱码问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MongoDB sharding分片

MongoDB sharding分片 有了副本集为什么要用分片?分片(一个数据 存放在三个地方 共同存储为一个整体 类似于raid0的存储方式)1、副本集利用率不高2、主库的读写压力大优点:资源利用率高了读写压力负载均衡横向水平扩展缺点:理想状态下需要的机器比较多配置和运维都变的及其复杂一定要提前规划好,一旦建立后再想改变架构就变得困难了 分片的原理1、...

服务器布署:网站注入与防范的方法

最近看到很多人的网站都被注入js,被iframe之类的。非常多。 1.首先检查一下服务器配置,重新配置一次服务器安全,可以参考 http://hi.baidu.com/zzxap/blog/item/18180000ff921516738b6564.html 2.其次,用麦咖啡自定义策略,即使网站程序有漏洞,别人也很难在文件上写入代码了。 参考自定义策略,...

Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)

1判断select选项中 是否存在Value="paraValue"的Item  2向select选项中 加入一个Item  3从select选项中 删除一个Item  4删除select中选中的项  5修改select选项中 value="paraValue"的text为"paraText"  6设置select中text="paraText"的第一个I...

【Mongodb】用户和认证 权限总结

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库!   在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息!当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admi...

mongodb进阶一之高级查询

上篇文章我们讲了mongodb的crud基本操作 http://blog.csdn.net/stronglyh/article/details/46812579 这篇我们来说说mongodb的进阶--------------高级查询 一:各种查询 1:条件操作符 <, <=, >, >= 这个操作符就不用多解释了,最经常使用也是...

(02)mongodb 数据库与collection的基本操作

1、查询数据库。 show dbs;或者show databases; 2、创建数据库,必须创建collection,如果只有use shop; 不会创建数据库。 use shop; db.createCollection('goods'); 3、删除数据库。 use shop; db.dropDatabase(); 4、查询collection,先用us...