造数据
var persons = [{
 name:"jim",
 age:25,
 email:"75431457@qq.com",
 c:89,m:96,e:87,
 country:"USA",
 books:["JS","C++","EXTJS","MONGODB"]
},
{
 name:"tom",
 age:25,
 email:"214557457@qq.com",
 c:75,m:66,e:97,
 country:"USA",
 books:["PHP","JAVA","EXTJS","C++"]
},
{
 name:"lili",
 age:26,
 email:"344521457@qq.com",
 c:75,m:63,e:97,
 country:"USA",
 books:["JS","JAVA","C#","MONGODB"]
},
{
 name:"zhangsan",
 age:27,
 email:"2145567457@qq.com",
 c:89,m:86,e:67,
 country:"China",
 books:["JS","JAVA","EXTJS","MONGODB"]
},
{
 name:"lisi",
 age:26,
 email:"274521457@qq.com",
 c:53,m:96,e:83,
 country:"China",
 books:["JS","C#","PHP","MONGODB"]
},
{
 name:"wangwu",
 age:27,
 email:"65621457@qq.com",
 c:45,m:65,e:99,
 country:"China",
 books:["JS","JAVA","C++","MONGODB"]
},
{
 name:"zhaoliu",
 age:27,
 email:"214521457@qq.com",
 c:99,m:96,e:97,
 country:"China",
 books:["JS","JAVA","EXTJS","PHP"]
},
{
 name:"piaoyingjun",
 age:26,
 email:"piaoyingjun@uspcat.com",
 c:39,m:54,e:53,
 country:"Korea",
 books:["JS","C#","EXTJS","MONGODB"]
},
{
 name:"lizhenxian",
 age:27,
 email:"lizhenxian@uspcat.com",
 c:35,m:56,e:47,
 country:"Korea",
 books:["JS","JAVA","EXTJS","MONGODB"]
},
{
 name:"lixiaoli",
 age:21,
 email:"lixiaoli@uspcat.com",
 c:36,m:86,e:32,
 country:"Korea",
 books:["JS","JAVA","PHP","MONGODB"]
},
{
 name:"zhangsuying",
 age:22,
 email:"zhangsuying@uspcat.com",
 c:45,m:63,e:77,
 country:"Korea",
 books:["JS","JAVA","C#","MONGODB"]
}]
for(var i = 0;i<persons.length;i++){
 db.persons.insert(persons[i])
}
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
 obj = persons.next();
        print(obj.books.length)
}
数据库的查询
查询指定的字段
//查询条件为全部,指定要查询的字段,若查询为1,不查询为0
db.persons.find({},{_id:0,name:1,country:1})
查询条件
比较操作符
$lt:<
$lte:<=
$gt:>
$gte:>=
$ne:!=
例如:查询29>=age>=27
db.persons.find({age:{$gte:27,$lte:29}},{_id:0,name:1,age:1})
查询不是韩国的数学成绩
db.persons.find({country:{$ne:"Korea"}},{m:1,country:1})
包含与不包含//作用于数组
包含$in
不包含$nin
查询美国与中国的学生
db.persons.find({country:{$in:["USA","China"]}},{_id:0,name:1,country:1})
查询不是中国或美国的学生
db.persons.find({country:{$nin:["USA","China"]}},{_id:0,name:1,country:1})
or查询
查询语文成绩大于85或者英语成绩大于90的学生名字
db.persons.find({$or:[{c:{$gt:85}},{e:{$lt:90}}]},{_id:0,name:1,c:1,e:1})
null
把中国国籍的学生上增加新的键sex
db.persons.update({country:"China"},{$set:{sex:"m"}},false,true)
查询出sex等于null的学生
db.persons.find({sex:{$in:[null]}},{_id:0,name:1,country:1,sex:1})
正则查询
查询出名字存在“li”的学生信息
db.persons.find({name:/li/i},{_id:0,name:1,country:1,sex:1})
$not的使用
   $not可以用到任何地方进行取反操作
   查询名字中不存在“li”的学生的信息
   db.persons.find({name:{$not:/li/i}},{_id:0,name:1,country:1,sex:1})
数组查询$all和index应用
    查询喜欢看mongod和js的学生
    db.persons.find({books:{$all:["MONGODB","JS"]}},{books:1,_id:0})
    查询第二本书是Java的学习信息
     db.persons.find({"books.1":"JAVA"},{books:1,_id:0})

查询指定长度数组$size,它不能与比较查询符一起使用(这是弊端)
     db.persons.find({books:{$size:4}},{books:1,_id:0})
查询出喜欢的书籍数量大于3本的学生
  1、增加字段size
   db.persons.update({},{$set:{size:4}},false,true)
  2、改变书籍的更新方式,每次增加书籍的时候size怎加1
   db.persons.update({查询器},{$push:{books:"ORACLE"},$inc:{size:1}})
  3、利用$gt查询
查询出jim喜欢看的书籍的数量
 var persons=db.persons.find({name:"jim"})//返回的是游标
 循环游标
  while(persons.hasnext()){
    obj=persons.next();
    print(obj.books.length)
}
$slice操作符返回文档中指定数组的内部值
查询出jim书架中第二本到第四本书
db.persons.find({name:"jim"},{books:{$slice:[1,3]}})
查询出jim书架中的最后一本书
db.persons.find({name:"jim"},{books:{$slice:-1}})
准备工作
var jim = [{
 school :"K",
 score:"A"
},{
 school :"L",
 score:"B"
},{
 school :"J",
 score:"A+"
}]
db.persons.update({name:"jim"},{$set:{school:jim}})
查询在K上过学,分数为A的学生
db.persons.find({school:{$elemMatch:{school:"K",score:"A"}}})
$where查询
查询年龄大于22岁,喜欢看c++书,在k学校上过学的学生信息
db.persons.find({"$where":function(){
var books = this.books;
 
 var school = this.school;
 
 if(this.age > 22){
  var php = null;
  
  for ( var i = 0; i < books.length; i++) {
   if(books[i] == "C++"){
    php = books[i];
    
    if(school){
     for (var j = 0; j < school.length; j++) {
      
      if(school[j].school == "K"){
      
       return true;
      }
     }
     break;
    }
   }
  } 
 }
}})
limit返回指定的数据条数
查询persons中前5条书籍
db.persons.find({},{_id:0,name:1}).limit(5)
$kip返回指定数据的跨度
查询出persons文档中5-10条数据
db.persons.find({},{_id:0,name:1}).limit(5).skip(5)
sort返回按照面临排序的数据 1正序  -1倒序
返回按照age排序的结果
db.persons.find({},{_id:0,name:1,age:1}).limit(5).skip(5).sort({age:1})

Mongo数据库操作(五)相关推荐

  1. Android开发笔记(一百七十五)利用Room简化数据库操作

    虽然Android提供了数据库帮助器,但是开发者在进行数据库编程时仍有诸多不便,比如每次增加一张新表,开发者都得手工实现以下代码逻辑: 1.重写数据库帮助器的onCreate方法,添加该表的建表语句: ...

  2. Mongo数据库的操作

    文章目录 一,Mongo数据库启动 二,连接数据库 三,数据库的简单操作 (一)查看数据库 (二)创建数据库or切换数据库 (三)删除数据库 (四)删除集合 一,Mongo数据库启动 在 start. ...

  3. php操作数据库的五个步骤,请写出PHP操作数据库的五个步骤

    请写出PHP操作数据库的五个步骤 答: 连接数据库服务器 选择数据库 执行SQL语句 处理结果集 关闭资源,释放连接 上盘相对下降,下盘相对上升的断层是 答:正断层 绍兴文戏时期分为男班时期和女班时期 ...

  4. linux mongo数据库启动及相关操作

    启动mongodb服务 首先需要建立一个文件夹,用来存放mongodb产生的数据库文件. 为了便于管理,我们将该文件夹放在mongodb安装目录下,即和bin目录平级. mkdir /usr/loca ...

  5. MongoDB(4):Docker下使用命令操作Mongo数据库

    Docker下使用命令操作mongo数据库 1.容器相关 #查询docker,查询到CONTAINER ID(容器id) $docker ps #进入Docker docker exec -it 09 ...

  6. golang中连接mongo数据库并进行操作

    golang中连接mongo数据库并进行操作 golang中连接mongo数据库并进行操作 首先,我们需要下载mongo模块 执行 go get github.com/mongodb/mongo-go ...

  7. iOS学习笔记(十五)——数据库操作(SQLite)

    SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的 ...

  8. python连接access数据库查询并打印出来_python 查询 access数据库操作

    日志服务使用Python SDK快速入门指南 为快速开始使用日志服务Python SDK,请按照如下步骤进行: 创建阿里云账号 为了访问阿里云日志服务,你需要有一个阿里云账号.如果没有,可首先如下创建 ...

  9. C语言与数据库操作入门(Win版)

    数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的,既使你不会Windows API,只要参照本文的方法,写数据库应用程序,你也行.本文以MySq ...

最新文章

  1. 下一次工业革命:计算生物学与生物平台
  2. python之装饰器篇
  3. 0121 - 开始学习 EOS 编程
  4. 倒计时1天:AI在改变一切
  5. moore和mealy_Mealy机和Moore机的比较研究 目录
  6. 大一计算机应用的实验报告,大一《计算机应用基础》实验报告1.doc
  7. 违反学校防疫规定,这所211高校两研究生被通报批评!
  8. MySQL日期时间函数大全
  9. 《嵌入式 – GD32开发实战指南》第5章 跳动的心脏-Systick
  10. HTTP Live Streaming直播(iOS直播)技术分析与实现
  11. mysql从库binlog_转 mysql 主从复制以及binlog 测试 (5.7)
  12. BLUP育种值如何计算准确性
  13. 远距离激光多脉冲测距TDC2K8S芯片使用
  14. 计算机专业被check后拒签,签证被Check是怎么一回事?解读美签的几种情况
  15. 【可视化】对比与位置的艺术 - how we position and what we compare
  16. Vue3 的生命周期函数
  17. vue使用addrouter添加动态路由
  18. SpringBoot整合Swagger2/Swagger3之拦截器配置
  19. maxon产品手册 产品指南 中文版(2019)
  20. 易飞ERP安全批量清除报表队列中的信息

热门文章

  1. linux下open函数用法,linux下open函数和creat函数
  2. day25.creat创建操作
  3. 学习SCI论文绘制技巧(A)
  4. 電腦android备份软件,数据备份软件哪个好 电脑/手机数据备份软件推荐
  5. excel简繁切换_Excel2010简繁转换功能没有了怎么处理
  6. flex显示gir动画
  7. 无人机测绘技术在测绘领域的应用
  8. Linux sysfs文件系统分析
  9. Gundam Seed 主题曲 歌词
  10. 技术面试时,被问及职业规划,怎么回答才加分?