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()
-