MongoDB中的SQL语句
:baseball: 基本的一些操作
显示当前所有的数据库
show dbs //admin 0.000GB //config 0.000GB //local 0.000GB
切换到某一个数据库,如果数据库不存在则自动创建一个
use admindbs //switched to db admin
查看当前操作的数据库
其实这里db是当前数据库的一个对象,而具体的数据库名字存储在对象中;所以之后对数据库的操作都依赖于db对象
db //admin
查看当前数据库集合(相当于mysql中的表)
show collections show tables //system.users //system.version
创建新的集合
//db.createCollection("test",{option可选参数}) db.createCollection("students") //{ "ok" : 1 }
删除已有的集合
db.集合的名字.drop() db.students.drop()
:monkey_face: 涉及到集合的操作
查询集合中所有数据
>db.system.version.find() //使用find方法,db代表当前数据库,并且id是数据库经过一定的处理保证不会产生重复 /* { "_id" : "featureCompatibilityVersion", "version" : "4.0" } { "_id" : "authSchema", "currentVersion" : 5 } */
往集合中插入数据
> db.students.insertOne({"name":"zpliu"}) { "acknowledged" : true, "insertedId" : ObjectId("5d2ddad0aba1154ed4c1c70a") } //查询一下看有没有成功 > db.students.find() { "_id" : ObjectId("5d2ddad0aba1154ed4c1c70a"), "name" : "zpliu" }
删除集合中的数据
db.students.remove({query},{justOne:true}) //当第二个条件justOne为true时,即使前面匹配多个内容也只会删除其中一个 //删除集合中的所有数据,只需要匹配所有字段即可 db.students.remove({});
更新集合中的内容
在update函数中第一个参数用于表头的搜索,第二个参数中使用
**{$set:{}}进行更新所选到的字段
:warning:当所搜索字段不唯一的时候,只会更新第一个搜索到的内容
> db.students.find() { "_id" : ObjectId("5d2ddad0aba1154ed4c1c70a"), "name" : "zpliu" } { "_id" : ObjectId("5d2ddb51aba1154ed4c1c70b"), "name" : "zpliu", "age" : 22 } > db.students.update({"name":"zpliu"},{$set:{"name" : "zpliu", "age" : 23}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.students.find() { "_id" : ObjectId("5d2ddad0aba1154ed4c1c70a"), "name" : "zpliu", "age" : 23 } { "_id" : ObjectId("5d2ddb51aba1154ed4c1c70b"), "name" : "zpliu", "age" : 22 }
数据库备份
mongodump -d admin -o /var/www/html/node/static/data/dump/ -u zpliu -p mysql --authenticationDatabase admin
-d 选择要备份的数据库
-o 保存数据的目录
-u 进行认证
后面的authenticationDatabase 是保存了用户认证信息的数据库
不知道为什么,开启认证模式不好备份我之间用非认证模式进行备份
Last updated
Was this helpful?