MongoDB基本概念以及安装操作就不做过多描述,主要直接进入正题,讲解其的一些基本操作。
某些截图来源于菜鸟教程:https://www.runoob.com/mongodb/mongodb-tutorial.html。
连接到数据库之后,查看有哪些数据库:
show dbs
创建数据库:
use DataBase(指需要创建的数据库的名字)
此时使用show dbs是查看不到刚创建的数据库的,我们需要向里面插入数据才能看到该数据库,而插入数据,我们是向库的集合中插入数据,集合相当于关系型数据库中的table:
db.test.insert({"name":"测试"}) 这里向test集合中插入数据,如果没有test集合,会自动帮我们创建test集合
使用数据库,跟上面创建数据库是一样的,只是如果没有该数据库,会自动创建:
use DataBase(指具体的数据库名)
删除数据库:
先切换到要删除的库:use testdatabase
接着删除:db.dropDatabase()
创建集合,MongoDB中有默认的数据库test,如果在创建集合之前,没有选择使用哪个库,集合将会创建到test数据库中:
创建数据库:use testdatabase
创建test集合:db.createCollection("test")
查看已经创建了的集合:
show collections
或者
show tables
可以在创建集合的同时插入数据,也就相当于不用单独创建集合,直接向某个不存在的集合插入数据,MongoDB会帮我们自动创建好集合:
db.test1.insert({"name":"测试"})
在创建集合的时候,还有些参数可选:
删除集合:
先使用上面的show collections查看有哪些集合,然后删除指定集合
db.test1.drop()(test1是已经存在的集合)
插入文档:
最简单的方法:
db.test.insert({"name","测试"})
当插入的_id主键已经存在的时候,会抛出异常:org.springframework.dao.DuplicateKeyException,提示主键已经存在,不保存当前的数据
3.2版本之前还有db.test.sava({"name","测试"}),主键存在就更新数据,主键不存在就插入
3.2版本之后新增了db.collection.insertOne() 和 db.collection.insertMany()两个方法
也可以将出入的文档定义为一个变量:
document = ({name:3});
然后执行插入操作:
db.test.insert(document)
查询文档:
查询所有:db.test.find()
查询给定的文档:db.test.find({"name":"测试"}).pretty()
pretty()可以不添加,只是以格式化的方式显示一个文档
如果给定的文档有多个,只返回一个结果,是返回的第一个结果:
db.test.findOne({"name","测试"})
一些比较操作:
AND操作,MongoDB中使用,表示:
先插入文档:db.test.insert({"name":1,"age":20})
查询:db.test.find({"name":1,"test":20})
OR操作,MongoDB中使用$or:
db.test.find({$or:[{"name":1},{"age":20}]})
更新文档:
基本语法:db.col.update(query ,update,upsert ,multi ,writeConcern )
update中使用$set,相当于常规sql的set
除了前面两个参数,后面三个参数都是可选参数:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
db.test.update({'name':1},{$set:{'name':2}})
如果有多条数据都需要更新,需要设置multi为true
db.test.update({'name':1},{$set:{'name':2}},{multi:true})
删除文档:
基本语法:
db.col.remove(query ,justOne ,writeConcern )
三个参数都为可选:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
当没有参数的时候,就全部数据删除,相当于常规SQL的truncate