MongoDB学习(一)

        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

猜你喜欢

转载自blog.csdn.net/qq_41061437/article/details/106426414