操作MONGODB数据库

1.创建数据库 语法:use 数据库名

注意:如果数据库不存在则创建数据库,否则切换到指定的数据库

另外:如果刚刚创建的数据库不再列表内,如果要显示它,我们需要向刚刚创建的数据库中插入一些数据

db.student.insert({name:”tom”,age:18,gender:1,address:”上海”,isDeleted:0})

2.删除数据库

前提:使用当前数据库(use 数据库名)

db.dropDatabase()

3.查看所有数据库

Show dbs

4.查看当前正在使用的数据库

db

db.getName()

5.断开连接

exit

6.查看命令api帮助

help

集合操作

1.查看当前数据库下有哪些集合:show collections

2.创建集合:

  • 语法:db.createCollection(“集合名”) 实例:db.createCollection(“student”)

  • 语法:db.student.insert(document)

区别:前者创建一个空的集合,后者创建一个空的集合并添加一个文档

3.删除当前数据库中的集合

语法:db.集合名.drop() 实例:db.student.drop()

文档操作

1.插入文档

  • 使用insert()方法插入文档 语法:db.集合名.insert(文档)
    • 插入一个:db.student.insert({name:”Jack”,age:18,gender:1,address:”上海”,isDeleted:0})

    • 插入多个:用逗号分隔,前后加入中括号,即变为列表,语法:db.集合名.insert([文档1,文档2,….,]):


db.student.insert([{name:”Jack”,age:18,gender:1,address:”上海”,isDeleted:0},
{name:”Rose”,age:18,gender:0,address:”北京”,isDeleted:0}]`
)

  • 使用save()方法插入文档

    语法:db.集合名.save(文档) 注意:如果指定_id字段则更新数据否则执行插入数据

实例1:db.student.save({name:”Jack”,age:18,gender:1,address:”上海”,isDeleted:0})

实例2:db.student.save({_id:ObjectId(“55656565656ac565d17”),name:”Jack”,age:18,gender:1,address:”上海”,isDeleted:0})

2.文档更新

  • update()方法用于更新已存在的文档

    语法:db.集合名.update([<query>],[<update>],{upset:<boolean>,multi:<boolean>,writeConcern:<document>})

    参数说明:query是update的查询条件,类似sql的update语句where后面的内容

    Update:update的对象和一些更新的操作符($set,$inc)等,$set直接更新,$inc在原有基础上累加后更新。
    
    Upset:可选,如果不存在update的记录,是否当新数据插入,true为插入,false为不插入,默认为false
    
    Multi:可选,mongodb默认为false,只更新找到的第一条记录,如果为true则按照条件查找出来的记录全部更新
    
    Writeconcern:可选,抛出异常的级别
    

以下实例我们将 Jack 的年龄更新为25:

db.student.update({name:”jack”},{$set:{age:25}})

db.student.update({name:”jack”},{$inc:{age:25}}) //累加

db.student.update({name:”jack”},{$set:{age:25}},{multi:true}) //全改

  • save()通过传入的文档替换已存在的文档

    语法:db.集合名.save(<document>,{ Writeconcer)

3.文档删除

说明:在执行remove()函数前,先执行find()命令来判断执行的条件是否存在是一个良好习惯。Remove函数已经过时,不推荐使用,请使用deleteOne和deleteMany方法

语法:

db.集合名.remove(Query,  #可选,删除文档的条件
{
	Justone:<boolean>, #为可选ture或1则只删除一个文档
		writeConcern:<document> #可选,抛出异常的级别
})

实例:db.student.deleteMany({}) #删除所有

Db.student.deleteMany({name:”Jack”}) #按照条件删除多条记录

Db.student.deleteOne({name:”Jack”}) #删除满足条件的一条记录

4.文档查询

  • Find()方法:查询机会中所有文档数据 ,语法:db.集合名.find()

  • find()方法查询指定列,语法:db.集合名.find(query,{<key>:1,<key>:1})

    参数说明:query是查询条件,可以是要显示的列(同时为1或同时为0不允许有交叉设置),1代表显示,0为不显示

实例:db.student.find({name:”tom”},{name:1,age:1}) #查询所有则query为{}

  • pretty()方法以格式化的方式显示文档实例:db.student.find().pretty()

  • findOne()方法查询匹配结果的第一条记录实例:db.student.findOne({gender:0})

5.查询条件操作符

作用:条件操作符用于比较两个表达式并从MongoDb集合中获取数据

语法 意义
$gt 大于
$gte 大于等于
$lte 小于等于
: 等于
$lt 小于

实例:db.student.find({age:{$gt:20}})

db.student.find({age:{$gte:10,$lte:50}}) #并且关系:大于等于且小于等于

db.student.find({“_id”:ObjectId(“Id值”)}) #使用id进行查询

db.student.find().count() #查询某个结果集的数据条数

db.student.find({name:/ile/})#查询某个字段的值是否包含另一个值

db.student.find({name:/^li/})字段的值是否以另一个值开头

6.条件查询 and 和or

  • AND 条件:db.student.find({gender:0,age:{$gt:16}})

  • OR 条件:db.student.find({$or:[{age:17},{age:{$gte:20}}]})

  • AND 和OR联合使用:db.student.find({条件1,条件2,$or:[{条件3},{条件4}]})

7.Limit /skip

  • limit():读取指定数量的数据记录: db.student.find().limit(3)

  • skip():跳过指定数量的数据:db.students.find().skip(3)

  • limit和skip联合使用实现分页:db.students.find().skip(3).limit(3)

8.排序

语法:db.集合名.find().sort({<key>:1|-1}) 参数:1是升序,-1是降序

实例:db.student.find().sort({age:1}) 9.创建索引

说明:索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构

语法:db.student.createIndex(keys, options) 参数:Key 要创建的索引字段,1 为指定按升序创建索引,按降序来创建索引指定为 -1,options中的background参数为true则创建在后台执行

实例:db.student.createIndex({name:1,age:-1}, {background: true})