今天继续学习MongoDB的相关知识,主要包括如下:
--find详解
--分页与排序
--游标和其他知识
1.指定返回的键
db.person.find({},{"_id":0,"name":1,"country":1})这样就只把name键和country键查询出来了,注意其他的如果不写默认不显示,但是如果_id如果不写,默认是显示的.
2.查询条件
db.person.find({"age":{$gte:25,$lte:27}},{"_id":0,"name":1,"country":1})查询年龄在25-27岁之间的学生的name和country.
db.person.find({"country":{$ne:"Korea"}},{"_id":0,"Math":1})查询所有不是韩国学生的数学成绩
3.包含或不包含
$in 或 $nin
db.person.find({"country":{$in:["USA","China"]}},{"_id":0,"Math":1})查询国籍是美国或者中国的学生数学成绩
db.person.find({"country":{$nin:["USA","China"]}},{"_id":0,"Math":1})查询国籍不是美国或者中国的学生的数学成绩
4.or查询
$or
db.person.find({$or:[{"Chinese":{$gt:85}},{"English":{$gt:90}}]},{"_id":0,"name":1,"Chinese":1,"English":1})查询语文成绩大于85或者英语吧成绩大于90的学生信息
5.正则查询
db.person.find({name:/li/i},{"_id":0,"name":1})查询出名字中含有"li"的学生的姓名
6. $not的使用
db.person.find({name:{$not:/li/i}},{"_id":0,"name":1})查询出名字中不含有"li"的学生的姓名
注意:$not和$nin的区别在于:$not可以用在任何地方,而$nin只可以用在集合上
7.数组查询$all和index应用
查询喜欢看MongoDB和JS这两本书的学生
db.person.find({books:{$all:["MongoDB","JS"]}},{"_id":0,"name":1})
查询第二本书是 JAVA的学生信息
db.person.find({"books.1":"JAVA"})
8.查询指定长度数组size
db.person.find({"books":{$size:4}})
9.查询出jim的书籍的数量
var jim = db.person.find("name":"jim") while(jim.hasNext()){ obj = jim.next(); print(obj.books.length) }
10.$slice操作符返回文档指定数组的内部值
查询出jim书架中的第2-4本书
db.person.find({"name":"jim"},{books:{$slice:[1,3]}})
查询出最后一本书
db.person.find({"name":"jim"},{books:{$slice:-1}})
这次先到这,下次继续,游标与排序.