数据库操作
选择和创建数据库
use articledb
都是用的是use,在这里进行创建数据库之后,再进行show dbs 查看数据库,会发现articledb这个数据库并没有出现,在这里因为存储机制的关系,这个数据库还只存在内存当中,当这个数据库当中有一个集合的时候就会持久化磁盘当中,那个时候这个数据库才可以看到这个数据库。
查看当前数据库
使用db命令即可查看。
数据库的删除
使用的是一个方法,db代表当前数据库
测试如下
集合操作
集合创建
集合相当于关系数据库当中的表
显示创建
使用
createCollection()
方法进行创建。
使用
show collections
即可查看当前库有多少条集合。
隐式创建
当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。
db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
参数解析:
Parameter | Type | Description |
---|---|---|
document | document or array | 要插入到集合中的文档或文档数组。(json格式) |
writeConcern | document | 插入的性能的级别等 |
ordered | boolean | 可选。如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中-个文档出现错误,则继续处理数组中的主文档。在版本2.6+中默认为true |
进行测试,使用insert进行插入数据
使用find()方法进行查询结果
在这里不单单是可以插入一条数据,也可以插入多条数据,使用insertMany()方法
db.col_many.insertMany([
{title:"mongodb",description:"this is database",likes:100},
{title:"mongodb",description:"this is database",likes:100},
{title:"mongodb",description:"this is database",likes:100}
])
只用同样的使用find进行查询
集合删除
db + 集合名 + drop方法进行删除,在删除之后再进行查看集合。
集合查询
使用到一个find方法
在这个find方法当中也可以带参数进行查询,比如在前面创建的col_many集合当中查询
db.col_many.find({title:"mongodb"})
db.col_many.find({title:"mongodb1"})
查看结果
这里还有一个fingOne()方法,只会返回一条数据
投影查询
在关系数据库当中就相当于子查询某几个字段,只需要再后面加上参数,参数也是json的数据类型,
db.col_many.find({title:"mongodb"},{title:1})
db.col_many.find({title:"mongodb"},{title:1,_id:0})
_id是会默认显示的,给后面加上
_id:0
就可以将其隐藏
数据更新
覆盖的修改,修改之后全部都会进行覆盖。
进行测试,可以看到数据直接进行了替换。
局部修改,为了解决这个问题,我们需要使用修改器$set来实现,命令如下:
查看结果,会发现mongodb1的likes的值从100改成了101
批量修改:使用到一个新的参数
{multi:true}
数据删除
使用remove进行删除,remove当中可以添加参数
db.col.remove({"title":"mongodb1"})
删除title为mongodb1的这一条数据。
在这里
db.col.remove({})
就表示删除所有数据。