版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24499745/article/details/88676686
# 以管理员身份打开cmd命令窗口,切换到 安装目录:MongoDB\Server\3.6\bin 目录下(如果配置了环境变量就不需要了)
# 以下默认为在这个路径下,或者配置了环境变量,直接到cmd窗口
增删改查前,基础命令
启动服务
# 启动服务
net start mongodb
# 停止服务
net start mongodb
连接mongodb
mongo 【远程主机ip或DNS:MongoDB端口号/数据库名】 -u user -p password
查看命令的帮助
Help
显示所有数据库
show dbs
使用某个数据库,如果没有则新建
use db_name
显示所有集合(实际上就是表)
show collections
删除指定集合
db.collection_name.drop()
删除指定数据库,需要先切换到需要删除的数据库下use db_name
db.dropDatabase()
## 增删改查前,用户命令
新建用户
必须切换到admin数据库: use admin
# 新建用户,admin
db.createUser({user:"admin",pwd:" admin", roles:[{role:"root", db:"admin"}]})
使用用户登录
# config中有个配置项auth=true
db.auth('admin', 'qwe123')
修改密码
db.changeUserPassword("admin", "admin123")
删除用户
db.dropUser("user_name")
显示用户的详情
db.getUser("user_name")
显示所有权限
show roles
创建权限
use admin
db.createRole({role:"test_role", privileges:[{resource:{db:"", collection:""},actions: [ "serverStatus" ] }], roles:[]})
删除权限
db.dropRole("test_role")
mongodb的增删改查
增加数据
# 简单的
db.infos.insert({"url":"www.baidu.com"});
# 数组,将插入多条数据
db.infos.insert([{"url":"www.baidu.com"},{"url":"www.sina.com"},{"url":"www.taobao.com"}]);
# mongo中插入多条数据,支持JavaScript进行循环操作。
for (var x = 0 ;x<10;x++) {
db.infos.insert({"url":"mldn - " + x});
}
# 插入多条数据,每条多列。
db.products.insert(
[
{ _id: 11, item: "pencil", qty: 50, type: "no.2" },
{ item: "pen", qty: 20 },
{ item: "eraser", qty: 25 }
]
)
# 也可以使用insertMany来实现插入多条
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
查看数据
语法
db.collection.find(query, projection)
# collection 表示要查询的表
# query 表示要查询的条件,类似sql中的 where,{字段:条件}
# projection,表示要显示的列,类似sql中 select 与 from中间的字段,{字段:0|1},要是0,就是不显示
查询所有记录中所有的信息
# SQL
select * from collection
# MongoDB
db.collection.find()
查询所有记录中指定的信息
# SQL
select title, author from collection
# MongoDB
db.collection.find({}, {"title": 1, "author": 1})
按照条件筛选记录()
# 比较条件: $gt(>)、$gte(>=)、$lt(<)、$lte(<=)
# SQL
select * from collection where title = "mongodb"
select * from collection where title = "mongodb" and author = "god"
select * from collection where title = "mongodb" or author = "god"
select * from collection where read >= 100;
select * from collection where read >= 100 and read <= 200
select * from collection where author in ("a", "b", "c")
select * from collection where author != "a"
# MongoDB
db.collection.find({"title": "mongodb"})
db.collection.find({"title": "mongodb", "author": "god"})
db.collection.find({"$or": [{"title": "mongodb"}, {"author": "god"}]})
db.collection.find({"read": {"$gt": 100}})
db.collection.find({"read": {"$gte": 100, "lte": 200}})
db.collection.find({"author": {"$in": ["a", "b", "c"]}})
db.collection.find({ "author": { "$ne": "a" }})
使用聚合函数
# SQL
select count(*) from collection
# MongoDB
db.collection.count()
排序
# SQL
select * from collection where type = "mongodb" order by read desc
select * from collection where type = "mongodb" order by read asc
# MongoDB
db.collection.find({"type": "mongodb"}).sort({"read": -1})
db.collection.find({"type": "mongodb"}).sort({"read": 1})
修改数据
语法
db.collecion.update(query, update[, options] )
# query : 必选,查询条件,类似find中的查询条件。
# update : 必选,update的对象和一些更新的操作符(如$,$inc...)等
# options:可选,一些更新配置的对象。
简单更新
db.collecion.update(query, update[, options] )
# query : 必选,查询条件,类似find中的查询条件。
# update : 必选,update的对象和一些更新的操作符(如$,$inc...)等
# options:可选,一些更新配置的对象。
更新特定字段($set)
# SQL
update game set count = 10000 where _id = 123
# MongoDB
db.game.update({"_id": 123}, { "$set": {"count": 10000}})
删除数据
删除所有文档
# SQL
delete from collection
# MongoDB
db.collection.remove()
删除指定文档
# SQL
delete from collection where title = "mongodb"
# MongoDB
db.collection.remove({title: "mongodb"})