3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)
1排序sort()
A降序排列 db.c4.find().sort().sort({age:-1}); |
B升序排列: db.c4.find().sort({age:-1}); |
C排序分页 db.collectionName.find().sort({age:-1}).skip(20).limit(10); eg:db.c4.find().sort({age:-1}).skip(20).limit(10); |
2 $all,$in,$nin,$or,$nor,$exists
查询集合中的文档,$all主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回。
$all(只有都包含才会显示) |
> db.c5.insert({name:’zhangsan’,age:[1,2,3,4,5,9,10]}); WriteResult({ “nInserted” : 1 }) > db.c5.insert({name:’lisi’,age:[2,4,7,9,10]}); WriteResult({ “nInserted” : 1 }) > db.c5.insert({name:’wangwu’,age:[4,7,8,16,24]}); WriteResult({ “nInserted” : 1 }) > db.c5.find({age:{$all:[4,7,9]}}); { “_id” : ObjectId(“543e20c5e2c90313035e7d06”), “name” : “lisi”, “age” : [ 2, 4, 7, 9, 10 ] } > |
$in(只要有包含1个就显示) |
> db.c5.find(); { “_id” : ObjectId(“543e2098e2c90313035e7d05”), “name” : “zhangsan”, “age” : [ 1, 2, 3, 4, 5, 9, 10 ] } { “_id” : ObjectId(“543e20c5e2c90313035e7d06”), “name” : “lisi”, “age” : [ 2, 4, 7, 9, 10 ] } { “_id” : ObjectId(“543e20ece2c90313035e7d07”), “name” : “wangwu”, “age” : [ 4, 7, 8, 16, 24 ] } >db.c5.find({age:{$in:[1,2,3]}}); { “_id” : ObjectId(“543e2098e2c90313035e7d05”), “name” : “zhangsan”, “age” : [ 1, 2, 3, 4, 5, 9, 10 ] } { “_id” : ObjectId(“543e20c5e2c90313035e7d06”), “name” : “lisi”, “age” : [ 2, 4, 7, 9, 10 ] } > |
$nin (表示不包含的才显示) |
> db.c5.find(); { “_id” : ObjectId(“543e2098e2c90313035e7d05”), “name” : “zhangsan”, “age” : [ 1, 2, 3, 4, 5, 9, 10 ] } { “_id” : ObjectId(“543e20c5e2c90313035e7d06”), “name” : “lisi”, “age” : [ 2, 4, 7, 9, 10 ] } { “_id” : ObjectId(“543e20ece2c90313035e7d07”), “name” : “wangwu”, “age” : [ 4, 7, 8, 16, 24 ] } >db.c5.find({age:{$nin:[1,2,3]}}); { “_id” : ObjectId(“543e20ece2c90313035e7d07”), “name” : “wangwu”, “age” : [ 4, 7, 8, 16, 24 ] } > |
$or (相当于或) |
> db.c6.find({$or:[{name:”zhangsan”},{age:25}]}) { “_id” : ObjectId(“543e2409e2c90313035e7d08”), “name” : “zhangsan”, “age” : 24 } { “_id” : ObjectId(“543e2432e2c90313035e7d09”), “name” : “lisi”, “age” : 25 } { “_id” : ObjectId(“543e2451e2c90313035e7d0a”), “name” : “wangwu”, “age” : 25 } > |
$nor 查询集合中的文档,$nor,表示根据条件过滤掉某些数据,例如:查询name不是user2,age不是3的文档,命令为: db.collectionName.find({$nor:[{name:”user1”},{age:3}]}); |
> db.c6.find(); { “_id” : ObjectId(“543e2409e2c90313035e7d08”), “name” : “zhangsan”, “age” : 24 } { “_id” : ObjectId(“543e2432e2c90313035e7d09”), “name” : “lisi”, “age” : 25 } { “_id” : ObjectId(“543e2451e2c90313035e7d0a”), “name” : “wangwu”, “age” : 25 } > db.c6.find({$or:[{name:”zhangsan”},{age:25}]}) { “_id” : ObjectId(“543e2409e2c90313035e7d08”), “name” : “zhangsan”, “age” : 24 } { “_id” : ObjectId(“543e2432e2c90313035e7d09”), “name” : “lisi”, “age” : 25 } { “_id” : ObjectId(“543e2451e2c90313035e7d0a”), “name” : “wangwu”, “age” : 25 } > db.c6.find({$nor:[{name:”zhangsan”},{age:25}]}) > |
$exists 查询集合中的文档,$exists,用于查询集合中存在某个键的文档或不存在某个键的文档,例如查询customer集合中存在name键的所有文档,可以使用db.collectionName.find({name:{$exists:1}}); $exists:1表示真,指存在 $exists:0表示假,指不存在 |
分别查询包含name属性的和包含sex属性的数据 |
3游标
游标(相当于数据库的一个临时的存储区,它是存放在内存中的,查找某个集合返回记录,我可以把这些记录放在游标当中,然后我可以迭代游标)。 查询集合中的文档,类似关系型数据库,mongodb中也有游标的概念 |
4更新
> show dbs; admin (empty) local 0.078GB test 0.078GB > use toto switched to db toto > db toto > use test switched to db test > use toto switched to db toto > db Toto > db.c1.insert({name:"zhangsan",age:19}); WriteResult({ "nInserted" : 1 }) > db.c1.insert({name:"lis",age:25}); WriteResult({ "nInserted" : 1 }) > db.c1.insert({name:"wangwu",age:23}); WriteResult({ "nInserted" : 1 }) > db.c1.insert({name:"zhaoliu",age:27}); WriteResult({ "nInserted" : 1 }) > db.c1.insert({name:"tianqi",age:33}); WriteResult({ "nInserted" : 1 }) > > db.c1.find(); { "_id" : ObjectId("543e3223e2c90313035e7d0e"), "name" : "zhangsan", "age" : 19 } { "_id" : ObjectId("543e3244e2c90313035e7d0f"), "name" : "lis", "age" : 25 } { "_id" : ObjectId("543e3259e2c90313035e7d10"), "name" : "wangwu", "age" : 23 } { "_id" : ObjectId("543e3270e2c90313035e7d11"), "name" : "zhaoliu", "age" : 27 } { "_id" : ObjectId("543e3294e2c90313035e7d12"), "name" : "tianqi", "age" : 33 } > |
更新操作: db.collectionName.update({条件},{修改的值}),函数中4个参数的介绍 1. 设置更新的条件 2. 设置更新的内容的对象 3. 如果没有符合条件的记录,是否新增一条记录(取值为0/1) 4. 如果有多条记录符合,是否全部更新(取值0/1) db.collectionName.update({条件},{修改的值}) 1. 更新的时候只更新到一条,且其它的key:value覆盖掉了 2. 我只更新到一条 > db.c1.find(); { "_id" : ObjectId("543e3244e2c90313035e7d0f"), "age" : 36 } { "_id" : ObjectId("543e3259e2c90313035e7d10"), "name" : "wangwu", "age" : 23 } { "_id" : ObjectId("543e3270e2c90313035e7d11"), "name" : "zhaoliu", "age" : 27 } { "_id" : ObjectId("543e3294e2c90313035e7d12"), "name" : "tianqi", "age" : 33 } > db.c1.update({age:36},{$set:{name:"zhangsan"}},0,1); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.c1.find(); { "_id" : ObjectId("543e3244e2c90313035e7d0f"), "age" : 36, "name" : "zhangsan" } { "_id" : ObjectId("543e3259e2c90313035e7d10"), "name" : "wangwu", "age" : 23 } { "_id" : ObjectId("543e3270e2c90313035e7d11"), "name" : "zhaoliu", "age" : 27 } { "_id" : ObjectId("543e3294e2c90313035e7d12"), "name" : "tianqi", "age" : 33 } > > db.c1.find(); { "_id" : ObjectId("543e3244e2c90313035e7d0f"), "age" : 36, "name" : "zhangsan" } { "_id" : ObjectId("543e3259e2c90313035e7d10"), "name" : "wangwu", "age" : 23 } { "_id" : ObjectId("543e3270e2c90313035e7d11"), "name" : "zhaoliu", "age" : 27 } { "_id" : ObjectId("543e3294e2c90313035e7d12"), "name" : "tianqi", "age" : 33 } > db.c1.update({age:24},{$set:{name:"tuzuoquan",age:24}},1,0); WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("543e3644dd76b7dcaba68faf") }) > db.c1.find(); { "_id" : ObjectId("543e3244e2c90313035e7d0f"), "age" : 36, "name" : "zhangsan" } { "_id" : ObjectId("543e3259e2c90313035e7d10"), "name" : "wangwu", "age" : 23 } { "_id" : ObjectId("543e3270e2c90313035e7d11"), "name" : "zhaoliu", "age" : 27 } { "_id" : ObjectId("543e3294e2c90313035e7d12"), "name" : "tianqi", "age" : 33 } { "_id" : ObjectId("543e3644dd76b7dcaba68faf"), "age" : 24, "name" : "tuzuoquan" } > |
5 inc
更新集合中的文档,使用$inc将集合中name为user1的age加1,其它键不变,$inc表示使某个键值加减指定的数值。 |
> for(var i=1;i<=20;i++){ db.c2.insert({name:"tuzuoquan",age:24}); } WriteResult({ "nInserted" : 1 }) > db.c2.find(); { "_id" : ObjectId("543e386ee2c90313035e7d13"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e386ee2c90313035e7d14"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d15"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d16"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d17"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d18"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d19"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1a"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1b"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1c"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1d"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1e"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d1f"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d20"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d21"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d22"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d23"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d24"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d25"), "name" : "tuzuoquan", "age" : 24 } { "_id" : ObjectId("543e38a5e2c90313035e7d26"), "name" : "tuzuoquan", "age" : 24 } > db.c2.update({name:"tuzuoquan"},{$inc:{age:1}},0,1); |
6 $unset(删除某个键)
更新集合中的文档,$unset用来删除某个键,例如删除name为user1的文档中address键,可以使用命令: db.c1.update({name:”user”},{$unset:{age:1}},0,1); |
>db.c2.update({name:"tuzuoquan"},{$unset:{age:1}},0,1); WriteResult({ "nMatched" : 20, "nUpserted" : 0, "nModified" : 20 }) > db.c2.find(); { "_id" : ObjectId("543e386ee2c90313035e7d13"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e386ee2c90313035e7d14"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d15"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d16"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d17"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d18"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d19"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1a"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1b"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1c"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1d"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1e"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d1f"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d20"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d21"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d22"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d23"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d24"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d25"), "name" : "tuzuoquan" } { "_id" : ObjectId("543e38a5e2c90313035e7d26"), "name" : "tuzuoquan" } > |
3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)相关推荐
- 非关系型数据库NoSQL的崛起
非关系型数据库NoSQL的崛起 <连线>杂志网络版近日刊载文章,对NoSQL(非关系型数据库)的来源与历史进行了追溯.文章主要介绍了最古老的NoSQL数据库之一CouchDB,这种数据库的 ...
- 常见非关系型数据库(NoSQL)推荐介绍
2019独角兽企业重金招聘Python工程师标准>>> 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域, 非关系数据库产品的发展非常迅速.而传统的关系 ...
- 常见的几个非关系型数据库(NoSQL)、非关系型和关系型的区别
目录 非关系型数据库的特点 -------------------------------. 1.关系型数据库 ------------------------------------ 2. 关系型 ...
- 关系型数据库sql与非关系型数据库nosql
一.什么是非关系型数据库? 1.非关系型数据库就是区别于关系型数据库的数据库. 2.虽然说起来有点绕嘴,但是非关系型数据库就是因为,关系型数据库处理不了的一些读写问题而产生的数据库 3.我们常用的非关 ...
- Java面试题 非关系型数据库nosql
四:非关系型数据库(nosql) 1:Redis (1)Redis介绍 是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持内存的NoSql数据库之一,数据结构服务器. (2)特点 ...
- 非关系型数据库-NoSQL(Redis)
文章目录 一.什么是 NoSQL? 二.NoSQL 的特性? 三.什么是 Redis? 四.Redis 安装部署 4.1 下载安装包 4.2 编译安装 4.3 修改配置文件 4.4 启动服务 4.5 ...
- 关系型数据库MySql与非关系型数据库NoSql
云计算背后的秘密:NoSQL诞生的原因和优缺点 我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不 ...
- 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)
Table of Contents 关系型数据库(Relational Database) 什么是关系数据库 什么是SQL? 关系数据库的结构 关系模型 关系数据库的好处 数据一致性 隔离性和原子性 ...
- mysql同步大师_数据库大师成长日记:您最需要了解的NoSQL非关系型数据库
朋友们,我们平时使用的数据库,大多都是关系型数据库,包括MySQL.PostgreSQL.SQLServer等.关系型数据库的特点是数据的存储通过二维表格实现,将数据存储在相互独立的表格中. 近年来, ...
- MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...
什么是数据库? 数据库(Database):存储数据的仓库 高效地存储和处理数据的介质(介质主要是两种:磁盘和内存) 数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关 ...
最新文章
- impala 本年格式化时间_hive,hbase,impala之间的对比
- SAP概念之Client(集团)
- Golang 编程思维和工程实战
- SAP Fiori Elements - how is read only field implemented in UI
- iPhone 15 Pro有望实现屏下面容识别 三星已在研发相关技术
- 马化腾王健林一起逛街 买了一杯茉莉茶却忘了拿走
- pdf转ppt_好用的pdf转ppt(一个神站+一个神器)
- Jquery中parentsUntil函数调用最容易犯的三个错误
- 修改保留注释_Kraken2:宏基因组快速物种注释神器
- SQL server 2016数据库 下载安装
- Windows下Redis-Cluster伪集群搭建
- 运维小白linux基础知识总结
- 什么是CDN加速技术?网站用CDN有什么好处
- PyTorch的自动求导机制详细解析,PyTorch的核心魔法
- Rails Controller中的concerns测试编写
- 2018年秋招运维岗面试常见python和数据结构知识点总结
- 47道计算机网络面试题,个人珍藏的80道多线程并发面试题(11-20答案解析)
- TI C2000 刷flash意外锁芯片的解决办法
- 数理统计-6.1 点估计的概念与无偏性
- OA办公系统成功实施的五大建议
热门文章
- 机器学习(4.文本数据的特征抽取(第二种TfidfVectorizer(TF-IDF)))
- 电力负荷事件划分(有代码)
- Web service 介绍与简单应用
- TCP首部报文段格式
- VTK:图像置换用法实战
- VTK:绘制带有rgb的单元格颜色用法实战
- wxWidgets:wxListbook类用法
- boost::type_index::type_id相关的测试程序
- boost::mpl模块实现has_xxx相关的测试程序
- boost::log::sinks::text_ostream_backend用法的测试程序