mongoDB增删改查(命令行操作数据库)

-

mongodb 每一行的数据可以不一致,也没有类型严格限制

这里在dos窗口内操作

连接数据库

在dos窗口输入   mongo 

查看当前计算机有哪些数据库

show  dbs 

切换到某一个数据库

use  <数据库>   

//切换到 itying数据库
//如果没有,先切换到这个数据库,然后添加一条数据,再通过show dbs就可以查到这个数据库
use itying

查看当前数据库的集合

show collections   

增加数据

db.集合.insert({key:value,key2:value2})

//在user表中插入 {"username":"张三","age":20} 这样一条数据
db.user.insert({"username":"张三","age":20})
// 往表内增加100条数据 
for(var i = 0;i<100;i++){
  db.user.insert({"username":"zhangsan"+i,"age":i})
}

删除数据

// 删除数据
// db.user.remove({查询条件})
// 比如把 username = zhangsan0 的数据删除
db.user.remove({"username":"zhangsan0"})
// 把age > 2的数据删除  只删除1条
db.user.remove({"age":{$gt:2}},{justOne:true})
db.user.remove({"age":{$gte:0}},{justOne:false}) //删除age>=0的所有数据
// 把 age > 2 的所有数据都删掉
db.user.remove({"age":{$gt:2}})
// 删除表中所有数据
db.user.remove({})

 

修改数据

// 修改数据 单条修改
// db.集合.update({查询条件},{$set:{key:value}})  
// 例如 把username=zhangsan22 的username改成 张三  (只修改第一条数据)
db.user.update({"username":"zhangsan22"},{$set:{"username":"张三"}})
// 如果不加$set  后面的值会替换整条数据(切记,不要在更新数据的时候忘记加$set)
db.user.update({"username":"张三"},{"username":"zhangsan22","age":22})

// 更新多条数据  批量修改
// db.user.find({查询条件},{$set:{更新值}},{multi:true})
// 比如给所有数据加一个性别属性
db.user.update({},{$set:{"sex":"男"}},{multi:true})
db.user.update({},{$set:{"sex":"男"}},{multi:false})//multi:false  单条修改 只修改第一条数据

 

查询

db.集合.find()   查看某一个集合的数据

//查看user集合中的数据
//这里find里没有参数,会显示表中的全部数据
db.user.find()
//查看user集合中有a属性,且a属性的值为1的数据
db.user.find( { a : 1 } )
//查找 user集合中 age > 18的数据
db.user.find({"age":{$gt:18}})
// 查找 user集合中 age < 20的数据
db.user.find({"age":{$lt:20}})
//查找 user集合中 age >=19的数据
db.user.find({"age":{$gte:19}})
// 查找 user集合中 age <= 20的数据
db.user.find({"age":{$lte:20}})
// 查找 user集合中 age >= 18 且 age <= 20的数据
db.user.find({"age":{$gte:18,$lte:20}})
// 模糊查询  
// 搜索user集合中 username包含 mongo字段的数据
// 数据量大的情况 需要借助第三方库,否则会有性能问题
db.user.find({"username":/mongo/})
// 查找username以 mongo开头的数据
db.user.find({"username":/^mongo/})
// 查找username以 o结尾的数据
db.user.find({"username":/o$/})
// 查找指定列的数据
// 只显示username  第二个参数的value值 非0 代表展示这一列 0代表不展示这一列 
db.user.find({},{"username":0})
// 排序 
// 按照年龄排序 1:升序  -1:降序
db.user.find().sort({"age":1}) //升序
db.user.find().sort({"age":-1}) //降序
db.user.find().sort({}) //默认顺序
db.user.find().sort({"username":-1}) //降序 用户名降序

// 查询前5条数据 可以和排序链式调用
db.user.find().limit(5)
// 跳过5条数据(查询5条以后的数据)
db.user.find().skip(5)
// 查询第3条和第4条数据   (跳过2条查询前2条)
db.user.find().skip(2).limit(2)
 // 分页查询
// db.user.find().skip((page - 1) * pageSize).limit(pageSize)
// 假如每页10条 查询第1页
db.user.find().skip(0).limit(10)
// 假如每页10条 查询第2页
db.user.find().skip(10).limit(10)

// or 与 查询
// 正常的查询是 & 并且 查询
// 来看一下 or 与 查询
// 查询 age = 22 或者 age = 24 的数据
db.user.find({$or:[{"age":22},{"age":24}]})
// 查找 age = 22 或者 age = 24 并且 username以22结尾的 数据
db.user.find({$or:[{"age":22},{"age":24}],"username":/22$/})

// 查询第一条数据 
db.user.findOne()
// 相当于
db.user.find().limit(1)

// 查询某个结果集的记录条数  统计数量
db.user.find().count()
db.user.find({"age":{$gt:50}}).count()

删除当前数据库

db.dropDatabase()    

//删除数据库
//首先要先切换到此数据库
user itying
//然后删除
db.dropDatabase()

删除当前数据库中某一个集合

db.集合.drop()  

//删除当前数据库下的user集合
db.user.drop()

 

 

 

-

posted @ 2021-08-21 23:20  古墩古墩  Views(463)  Comments(0Edit  收藏  举报