MongoDB基础知识点回顾(最最基础的增删改查,和sql对比)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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"})

猜你喜欢

转载自blog.csdn.net/qq_24499745/article/details/88676686