mongo 和 mysql 一样,都有一些终端命令,如查看数据库,查看集合,新增集合,删除集合等
数据库的操作
在终端,使用 mongo 命令,进入mongo的shell
查看所有的数据库
show dbs;
查看当前使用数据库
db;
这里可能有的同学我都没有test库,为啥会有test这个数据库?
个人理解是mongo 是一个动态的数据库,他会默认的给你创建一个数据库而不需要你自己手动来创建。
查看当前数据库状态
db.stats();
查看数据库中所有的集合
show collections;
新增数据库
use xxx xxx 是数据库名称
这里可能有的人又会说,使用use xxx 确实切换了数据库,但是在show dbs 里面怎么看不到,这是因为mongo 给你创建了数据库,但是里面没有东西,等有东西的时候自动显示出来。
删除数据库
db.dropDatabase()
数据库的CRUD
所有的数据库都有增删改查(CRUD), mongo 也有crud, 但是mongo 写的不是sql语句,而是类似js 一样,来调用方法。
插入文档
插入单条数据
db.collection.insertOne(obj): 将单个文档插入集合collection中,这个会在当前数据库自动创建一个集合collection,然后插入文档的内容
这里的文档内容可以不同,插入的内容也可以不同哦!如:
插入多条数据
db.collection.insertMany([obj1, obj2])
新的文档如果没有指定字段_id,则会自动添加一个字段_id作为主键
自动的主键是一个ObjectId对象,该对象是通过调用函数ObjectId()创建的
它的原理是根据时间戳+机器码+进程Id+自增量生成的一个十六进制的唯一字符串
使用ObjectId函数还可以把某个字符串还原成一个ObjectId对象,例如ObjectId("xxxxx")
查询数据
db.inventory.find( {} ) : 如果里面不传参数,是全查数据
传入参数类似filter函数,如:
修改文档
更新单个文档
db.collection.updateOne(<filter>, <update>): 修改单个文档是单挑查询出来,然后进行修改;
更新多个文档
db.collection.updateMany(<filter>, <update>):更新多个文档是,通过filter查询出多条来,进行更新.
替换单个文档
db.collection.replaceOne(<filter>, <update>):先通过filter条件来查询文档(只会找到第一条),然后进行替换;
##删除文档
删除一条数据
db.collection.deleteOne(查询对象): 先通过filter函数来查询一条数据,然后进行删除;
删除多条数据
db.collection.deleteMany(查询对象): 通过filter函数查询多个,然后进行删除。