MongoDB学习笔记<四>

时间:2022-06-15 16:40:54

今天继续学习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}})

这次先到这,下次继续,游标与排序.