目录
一、插入文档
需要使用 MongoDB 的 insert() 方法。
操作1:创建一个数据库名称为 mydb
操作2:创建一个集合movie
操作3:插入一条数据,db.集合名称.insert({key1:val1,…..}) db.movie.insert({name:”my movie01”})
db.createCollection("movie")
//插入一条数据
db.movie.insert({name:"简爱"})
db.movie.find()
操作4:批量插入数据 mymovies=[{name:”my movies02”},{name:”my movies03”}] db.movie.insert(mymovies)
//批量插入数据
//符号为英文符号
var movies = [{name:"哈尔的移动城堡"},{name:"疯狂动物城"},{name:"百年孤独"}]
db.movie.insert(movies)
db.movie.find()
二、查询文档
1.引入库
需要使用MongoDB 的 find() 方法以非结构化的方式显示所有的文件。
操作4:创建一个集合infos用于存放姓名、年龄、性别、城市信息
//创建infos
db.createCollection("infos")
var infos = [{name:"Lee",age:20,sex:"女",city:"西安"},{name:"Tina",age:22,sex:"女",city:"西安"},{name:"Mark",age:18,sex:"男",city:"西安"}]
db.infos.insert(infos)
db.infos.find()
操作5:查询集合所有文档对象 使用MongoDB 的 findOne() 返回集合中的第一条文档数据。
操作6:查看当前集合中的第一个文档数据 使用MongoDB 的 find() .pretty()方法以结构化的方式显示所有的文件。
//加入pretty有格式化的美化效果
db.infos.find().pretty()
操作7:再次查看分析结果区别
- $lt 小于; $lte 小于等于 ; $gt 大于; $gte 大于等于; $ne 不等于
//查看在西安居住的用户信息
db.infos.find({city:"西安"})
//不在西安的用户信息
db.infos.find({city:{$ne:"西安"}})
//查看年龄大于等于18岁的用户信息
db.infos.find({age:{$gt:18}})
- AND/OR 在MongoDB中用法
//查看女性用户并住在西安的用户信息
db.infos.find({sex:"女"},{city:"西安"})
//查看居住在西安或天津的用户信息
db.infos.find({$or:[{city:"西安"},{city:"天津"}]})
//查看年龄大于20,并居住在西安或者上海的用户信息
db.infos.find({age:{$gt:20},$or:[{city:"西安"},{city:"上海"}]})
三、更新文档
使用db.collection.update( criteria, objNew, upsert, multi )更新现有的文档。
- Criteria 更新操作的条件,类似于SQL语句中的where字句
- objNew update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
- Upsert 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
//将姓名为Lee的用户年龄更新为11
db.infos.update({name:"Lee"},{$set:{age:11}},false,true)
db.infos.update({name:"jack"},{$set:{age11:11}},true,true)
四、删除文档
MongoDB的 remove(deletion criteria, justOne) 方法用于从集合中删除文档。remove() 方法接受两个参数。
deletion criteria :(可选)删除标准,根据文件将被删除。
justOne : (可选)如果设置为true或1,然后只删除一个文件。
//删除用户姓名为Lee的用户信息
db.infos.remove({name:"Lee"},true)
//删除infos集合的全部数据(类似truncate)
db.infos.remove({})
五、 投影、限制记录、排序文档
1.投影
- mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整体。如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段。
- MongoDB 的find()方法,在MongoDB查询文档接受的第二个可选参数是要检索的字段列表。
- 在MongoDB中,当执行find()方法,那么它会显示一个文档所有字段。要限制这一点,需要设置的字段列表值1或0。 1用来显示字段而0是用来隐藏字段。
-
//投影 //查询用户所在的城市和姓名 db.infos.find({},{age:0,sex:0})
2.限制记录
要限制 MongoDB 中的记录,需要使用 limit() 方法。
limit() 方法接受一个数字型的参数,这是要显示的文档数。如果不指定数量 limit() 方法的参数,它会显示从集合中的所有文件。
//显示两个用户的数据
db.infos.find({}).limit(2)
除了limit() 方法,还有一个方法skip() 也接受数字类型的参数,并使用跳过的文档数。默认值skip()方法是0
- Skip()+Limit() 实现文档数据分页显示
- 分页显示用户数据,每页显示2条数据(pageSize=2)
- pageSize: 单页显示的文档个数,使用limit(pageSize)控制
- skip是第(n-1)*pageSize,n代表页数
- 显示第1页数据 limit(pageSize) skip((1-1)*pageSize) db.infos.find(). limit(2).skip(0)
- 显示第2页数据 limit(pageSize) skip((2-1)*pageSize) db.infos.find(). limit(2). skip(2)
db.infos.find({}).limit(2).skip(2)
3.排序文档
- 要在 MongoDB 中的文档进行排序,需要使用sort()法。
- sort() 方法接受一个文档,其中包含的字段列表连同他们的排序顺序。要指定排序顺序1和-1。
- 1用于升序排列,而-1用于降序。
//按照年龄降序排列
db.infos.find().sort({age:-1})