一、基本概念
mongodb有三个概念
- 数据库(database)数据库是一个仓库,在仓库中可以存放集合。
- 集合(collection)集合类似于数组,在集合中可以存放文档。
- 文档(document)文档数据库中的最小单位,我们存储和操作的内容都是文档。
就是说在mongodb中一条数据就是一个文档,多个文档组成集合,多个集合组成数据库。如下:

二、基本指令
1、安装robo 3t 作为数据库可视化工具,详情我就不说了
1、数据库操作
- show dbs 显示所有的数据库
-
use 数据库名
-
使用use时,如果数据库存在则会进入到相应的数据库,如果不存在,当对数据库执行插入文档的时候会自动创建
-
一旦进入数据库,则可以使用db来引用当前库
-
show db.collections 显示当前数据库的所有集合
-
db.createCollection()使用create时创建一个新的集合
-
db.<collectionname>.drop() 使用drop时删除集合
2、文档的操作
-
插入文档
1、db.<collectionname>.insert (文档) 可以向集合中添加一个或者多个文档,插入时每个文档会生成一个唯一的标识id.如果集合不存在则会自动创建。若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数
db.<collectionname>.insert ( <document> )


2、db.<collectionname>.save(文档)如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.replaceOne() 来代替。
db.collectionname.replaceOne(
<document>, //匹配文档
<document> //需要更新的文档
)

3、db.collection.insertMany() 批量插入数据
db.collectionname.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
>>document:要写入的文档。
>>writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
>>ordered:指定是否按顺序写入,默认 true,按顺序写入。

-
修改文档 db.<collectionname>.update ()
db.collectionname.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
>>query : update的查询条件,类似sql update查询内where后面的。
>>update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
>>upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
>>multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
>>writeConcern :可选,抛出异常的级别。

-
删除文档 db.<collectionname>.remove(文档) 移除指定文档对象,移除后不可撤销
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
>>query :(可选)删除的文档的条件。
>>justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
>>writeConcern :(可选)抛出异常的级别。

-
查询文档 db.<collectionname>.find() pretty()以格式化的方式输出
db.collectionname.find(query, projection) >>query :可选,使用查询操作符指定查询条件 >>projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/267342.html