show databases
use 数据库名
隐式创建,没有则自动创建
show collections
db.createCollection
db.集合名.drop()
如何删除数据库?
通过use语法选中数据库
通过db.dropDatabase()删除数据库
db.集合名.insert(JSON数据)
_id的生成
**自定义_id值 **
只需要插入的json数据增加_id即可覆盖(但实战强烈不推荐) db.c1.insert({_id: '1',username: 'ht',age:18,sex: '女'})**多条数据的插入 **
db.集合名.insert([ {username: 'hh',age: 12}, {username: 'aa',age: 13}, {username: 'bb',age: 14} ])**如何快速插入10条数据 **
mongodb底层支持js写法 for(var i=0;i<10;i++) {print(i) } 需求:在c2集合中插入10条数据,分别为a0~a9 for(var i=0;i<10;i++){ db.c2.insert({username: 'a'+i,age: i}) }db.集合名.find(条件,【,查询的列】)
条件 查询所有数据 {}或者不写 查询age=6的数据 {age:6} 既要age=6又要性别=男 {age: 6, sex: '男'} 查询的列(可选参数) 不写 - 这里查询全部列(字段) {age: 1} 只展示age列(字段) {age: 0} 除了age列(字段都显示) 留心:不管你怎么写,系统自定义的_id都会在升级语法
db.集合名.find({键:值}) 注:值不直接写 {运算符: 值} 运算符作用$gt大于$gte大于等于$lt小于$lte小于等于$ne不等于$inin$ninnot in练习1:查询所有数据
db.c1.find({}) | db.c1.find()练习2:查询年龄大于5岁的数据
db.c1.find({age:{$gt:5}})练习3: 查询年龄是5岁,8岁,10岁的数据
db.c2.find({age: {$in: [5,8,10]}})练习4:只看年龄列,或者年龄以外的列(_id别管)
db.c1.find({},{age:1}) 只看年龄列 db.c1.find({},{age:0}) 看年龄以外的列db.集合名.update(条件,新数据【,是否新增,是否修改多条】)
是否新增: 指条件匹配不到数据则插入(true是插入,false是不插入默认) 是否修改多条:指将匹配成功的数据都修改(true是,false否默认)**升级语法 **
db.集合名.update.(条件,新数据) {修改器:{键:值}} 运算符作用$inc递增$rename重命名列$set修改列值$unset删除列准备工作
for(var i=0;i<10;i++){ db.c3.insert({username: 'a'+i,age: i}) }练习1: 将a1的username改成a2
db.c3.update({username: 'a1'},{username: 'a2'}) 发现:默认是替换,不是修改 解决: 使用升级语法 修改器 需求: 使用修改器将a3姓名改成a33 语法: db.c3.update({username: 'a3'},{$set:{username: 'a33'}})练习2:给username为a4的年龄加10
db.c3.update({username: 'a4'},{$inc:{age:10}})练习3: 修改器综合练习
完成需求: 1.username 改成 美少男 (修改器: s e t ) 2. a g e 增 加 111 ( 修 改 器 : set) 2.age 增加111 (修改器: set)2.age增加111(修改器:inc) 3.who 改字段 sex (修改器: r e n a m e ) 4. o t h e r 删 除 ( 修 改 器 : rename) 4.other 删除 (修改器: rename)4.other删除(修改器:unset)
db.c4.insert({username: ‘美少女’,age: 888,who: ‘男’,other: ‘非国人’})
db.c4.update({username:'美少女'},{$set: {username:'美少男'},$inc: {age: 111},$rename: {who: 'sex'},$unset: {other: true}})验证语法最后两个参数
【验证】是否新增: 修改username等于a30的年龄 30
db.c3.update({username: 'a40'},{$set:{age: 30}},true) 第三个参数为true,没有则添加,默认为false【验证】是否修改多条
db.c3.update({},{$set: {age: 10}}, false,false) 默认只修改一个 db.c3.update({},{$set: {age: 10}}, false,true)