首先推荐一个Studio 3T 的操作工具

1:支持批量插入

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)
} 

通过for循环批量插入

2:查询

find:db.集合名.find({条件},{键指定})
1:只查找部分字段1.1 查询出所有数据的指定键(name ,age ,country)db.persons.find({},{name:1,age:1,country:1,_id:0});
2.查询条件$gte $gt $lte $lt  $ne2.1查询出年龄在25到27岁之间的学生db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})2.2查询出所有不是韩国籍的学生的数学成绩db.persons.find({country:{$ne:” Korea”}},{_id:0,m:1})
3.包含或不包含$in或$nin2.3查询国籍是中国或美国的学生信息db.persons.find({country:{$in:[“USA”,“China”]}})2.4查询国籍不是中国或美国的学生信息db.persons.find({country:{$nin:[“USA”,“China”]}})
4.OR查询$or2.4查询语文成绩大于85或者英语大于90的学生信息db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})
5.Null把中国国籍的学生上增加新的键sexdb.person.update({country:”China”},{$set:{sex:”m”}})2.5查询出sex 等于 null的学生db.persons.find({sex:{$in:[null]}},{country:1})或者db.persons.find({sex:{$eq:null}})
6.正则查询2.6查询出名字中存在”li”的学生的信息db.persons.find({name:/li/i},{_id:0,name:1})
7.$not的使用$not可以用到任何地方进行取反操作2.7查询出名字中不存在”li”的学生的信息db.persons.find({name:{$not:/li/i}},{_id:0,name:1})$not和$nin的区别是$not可以用在任何地方儿$nin是用到集合上的
8.数组查询$all和index应用2.8查询喜欢看MONGOD和JS的学生db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})2.8.2查询第二本书是JAVA的学习信息db.persons.find({“books.1”:”JAVA”})
9.查询指定长度数组$size它不能与比较查询符一起使用(这是弊端)2.9查询出喜欢的书籍数量小于4本的学生db.persons.find({$where:"this.books.length《4"})2.9.2查询出lili喜欢看的书的数量     var lili = db.persons.find({name:"lili"})while(lili.hasNext()){obj=lili.next()print(obj.books.length)}
10.$slice操作符返回文档中指定数组的内部值2.10查询出Jim书架中第2~4本书db.persons.find({name:"jim"},{books:{"$slice":[1,3]}})2.10.2查询出最后一本书db.persons.find({name:"jim"},{books:{"$slice":-1},_id:0,name:1})    

查询

3:文档查询

var jim = [{school :"K",score:"A"
},{school :"L",score:"B"
},{school :"J",score:"A+"
}]
db.persons.update({name:"jim"},{$set:{school:jim}})

给人员添加教育经历 信息

3.文档查询3.1查询出在K上过学的学生db.persons.find({"school.school":"K"})3.2查询出在K上过学的学生,而且成绩中获得过A的学生db.persons.find({"school.school":"K","school.score":"A"})3.3查询出在K校成绩为A的学生db.persons.find({school:{$elemMatch:{"school":"K","score":"A"}}})
4.$where4.查询年龄大于22岁,喜欢看C#书,在K学校上过学的学生信息db.persons.find({age:22,books:{$in:["C#"]},"school.school":"K"})或者db.persons.find({"$where":function(){//得到查询结果的每一条文档var books = this.books;//得到文档中的school对象var school = this.school;//如果年纪>=22if(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++) {//判断是不是在K上学if(school[j].school == "K"){//返回是真return true;}}break;}}}    }}})
5.Limit返回指定的数据条数5.1查询出persons文档中前5条数据db.persons.find({},{_id:0,name:1}).limit(5)
6.Skip返回指定数据的跨度6.1查询出persons文档中5~10条的数据db.persons.find({},{_id:0,name:1}).limit(5).skip(5)
7.Sort返回按照年龄排序的数据[1,-1]db.persons.find({},{_id:0,name:1,age:1}).sort({age:1})注意:mongodb的key可以存不同类型的数据排序就也有优先级最小值null数字字符串对象/文档数组二进制对象ID布尔日期时间戳  正则  最大值
8:分页(跳过多少条,去多少条)db.persons.find().limit(5).skip(5).sort({id:1})注意:分页的性能不好,建议通过,筛选条件+limit(),获取分页示例:根据自增的id取数据(每页5条,显示第二页)方法一:db.persons.find().limit(5).skip(5)方法二:db.persons.find({id:{$gt:5}}).limit(5) 而且,应该把重点放到便捷和精确查询上而不是分页的性能上
因为用户最多不会翻查过2页的

文档查询+分页

转载于:https://www.cnblogs.com/YK2012/p/10987694.html

集腋成裘-15-MongoDB系列-02Find详细相关推荐

  1. 小米usb测试软件,你还在用USB传文件?小米10系列USB详细测试——《小米10十大槽点》番外 图文版...

    你还在用USB传文件?小米10系列USB详细测试--<小米10十大槽点>番外 图文版 2020-06-13 22:03:29 1点赞 1收藏 0评论 创作立场声明:给大家科普一下传文件的技 ...

  2. mongodb系列教程

    mongodb系列教程 ttlsa教程系列之mongodb-(一)mongodb介绍 ttlsa教程系列之mongodb--(二)mongodb安装 ttlsa教程系列之mongodb--(三)mon ...

  3. 安防工程商前期收集客户信息15种方法与详细流程

    安防工程商前期收集客户信息15种方法与详细流程 [关键词]安防资料安防  收集  客户  工程  监控 作为工程商,安防工程商与其他行业工程商一样,要面临前期客户开发的问题.收集客户信息管理及流程如下 ...

  4. VM15pro安装MacOS10.15.1系统(超详细,可用)

    前段时间去开发了款app需要用到打包,Android打包就不说了那个不涉及到环境,但是ipa打包就烦了,还要在mac的环境中去打包,废话不多说,开始办正事. 首先要有一个VMpro15 我这里是这个. ...

  5. MongoDB系列之学习笔记教程汇总

    1.什么是MongoDB? MongoDB系列之SQL和NoSQL的区别 MongoDB系列之什么是非关系型数据库 MongoDB系列之MongoDB基本概念 MongoDB系列之适用场景和不适用场景 ...

  6. 传苹果开发ChatGPT类的AI产品;iPhone 15 Pro系列或将涨价;PyTorch 2.0 发布 |极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  7. 小米电视系统统计服务器,史上最全!小米电视4 各系列超详细对比

    原标题:史上最全!小米电视4 各系列超详细对比 小米电视作为智能电视的新秀,以优秀的品牌号召力.良好的口碑,当然免不了小米一直以来的价格攻势,逐渐成为电视领域的领头羊,目前市面上包含小米电视4.4A. ...

  8. iPhone 15全系列即将登场:英国巴克莱银行预测PRO系列售价或涨100到200美元,换来的是游戏效能提升!

    每年九月,蘋果公司都会推出一年一度的全新iPhone系列,今年也不例外,将会推出iPhone 15全系列.除了新机功能备受关注外,售价也成为焦点之一.有不少消息指出,iPhone 15全系列都会涨价. ...

  9. python导入同级包_python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

  10. python 引入同一路径的类_python小课堂15 - 史上最详细的包和模块import讲解篇

    python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...

最新文章

  1. java 中while编译之后_从APK反编译的Java-while循环什么也不做
  2. 罗永浩直播翻车频现,抖音选错了吗?
  3. starUML--面向对象的设计过程
  4. org.apache.jasper.JasperException: Unable to co...
  5. Java-进阶:多线程1
  6. java 选择图片 显示不出来的_JAVA 窗体选择图片显示在窗体中
  7. linux温故知新十
  8. java线程入门_java多线程快速入门(一)
  9. ubuntu 16.04 系统安装保留原home分区
  10. led时间代码html,LED旋转时钟制作(有源代码)
  11. 手机与个人计算机区别,手机CPU跟电脑CPU有什么差别?两者差距到底有多大?
  12. 美国各州边界矢量划分图
  13. 安卓接入微信php处理,PHP对接微信公众号实现简单自动回复
  14. 场效应管和三极管对比
  15. RTOS系统全Thumb编译+Neon加速火力全开
  16. 《信息与编码》考试复习笔记6----第六章连续信源熵和信道容量(考点在连续信道容量)
  17. jquery base64加密
  18. 办公室业务杂志办公室业务杂志社办公室业务编辑部2022年第18期目录
  19. 2018这一年读过的那些书
  20. 信息收集[架构CMS数据库中间件]

热门文章

  1. 计算机wps函数的使用,WPS表格中IF函数使用的技巧
  2. MT6739充电IC集成步骤
  3. 高拍仪Twain接口功能
  4. 1.1 UWP应用简介
  5. excel vba 去重
  6. 机器学习下的持续交付
  7. JAVA实现PDF合并、拆分代码工具类
  8. 计算机休眠和睡眠省电,几步教会你笔记本睡眠和休眠有什么区别
  9. 华硕无线网卡测试软件,华硕 AiMesh WiFi系统 无线回程测试
  10. 数字孪生|数字孪生装备-概念与内涵