mongodb基本操作

tech2022-07-05  182

查看数据库

show databases

选择数据库

use 数据库名

隐式创建,没有则自动创建

查看集合

show collections

创建集合

db.createCollection

删除集合

db.集合名.drop()

如何删除数据库?

通过use语法选中数据库

通过db.dropDatabase()删除数据库

mongodb集合中的数据增删改查

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

db.集合名.remove(条件,【,是否删除一条】) 注意是否删除一条true是,false否 默认

最新回复(0)