1、安装请查看上一篇文章:mongodb安装
2、
语法:show databases
语法:use 数据库名
效果
隐式创建:在mongodb选择不存在的数据库不会报错,后期当该数据库有数据时。系统自动创建。
语法:show collections
效果
语法:db.createCollection('集合名')
效果
语法:db.集合名.drop()
效果
如何删除数据库?
1通过use语法选中数据库,2通过db.dropDatabase()删除数据库
总结:
数据库(查看、创建、选择、删除
查看:show databases
创建:有单独的语法,但是忽略 隐式创建
选择:use 数据库名
删除:1通过use选中数据库,2通过db.dropDatabase()删除数据库
集合(查看、创建、删除
查看:show collections
创建:db.createCollection('集合名') 多学一招:忽略 后期插入数据 隐式创建集合
删除:db.集合名.drop()
3、
语法:db.集合名.insert(JSON数据)
说明:集合存在-则直接插入数据,集合不存在-隐式创建
练习:在test2数据库的c1集合中插入数据(姓名叫haijin年龄18岁)
use test2
db.haijin1.insert({uname:"haijin", age:18})
1:数据库和集合不存在都隐式创建
2:对象的键统一不加引号方便看,但是查看集合数据时系统会自动加
3:mongodb会给每条数据增加一个全球唯一的_id键
如何一次性插入多条记录?
传递数据,数组中写一个个JSON数据即可
db.haijin1.insert([
{uname:"z3", age:3},
{uname:"z4", age:4},
{uname:"w5", age:5}
])
含义:一次性插入3条数据到haijin1集合
如何快速插入10条数据
for (var i=1; i<=10; i++) {
print(i)
}
需求:在test2数据库haijin2集合中插入10条数据,分别为 a1 a2 ... a10
use test2
for (var i=1; i<=10; i++) {
db.haijin2.insert({uanme: "a"+i, age: i})
}
条件
查询所有数据 {}或者不写
查询age=6的数据 {age:6}
既要age=6又要性别=男 {age:6,sex:'男'}
查询的列(可选参数
不写 - 这查询全部列(字段
{age:1} 只显示age列(字段
{age:0} 除了age列(字段都显示
留心:不管你怎么写系统自定义的_id都会在
升级语法
db.集合名.find({键:值}) 注:值不直接写
{运算符:值}
db.集合名.find({
键:{运算符:值}
})
作用 | |
---|---|
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | in |
$nin |
查询所有数据
查询所有数据
db.haijin1.find()
只看uname列
db.haijin1.find({},{uname:1})
除了uname都不看
db.haijin1.find({},{uname:0})
查询年龄大于5岁的数据?
db.haijin2.find({age:{$gt:5}})
查询年龄是5岁、8岁、10岁的数据?
db.haijin2.find({age:{$in:[5,8,10]}})
只看年龄列,或者年龄以外的列(_id别管它)?
只看年龄列: db.haijin2.find({},{age:1})
只看除了年龄列: db.haijin2.find({},{age:0})
是否新增:指条件匹配不到数据则插入(true是插入,false否不插入默认)
是否修改多条:指将匹配成功的数据都修改(true是,false否默认)
升级语法
说明:
是否新增:指匹配不到数据则插入(true-是插入,false-否不插入默认)
是否修改多条:将匹配成功的数据都修改(true-是,false-否默认)
db.集合名.update(条件, 新数据)
{修改器: {键:值}}
作用 | |
---|---|
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset |
准备工作
use haijin_db;
for(var i = 1; i<= 10; i++){
db.haijin_c.insert( {"uname":"zs"+i,"age":i} );
}
"zs1"}改为{uname:"zs2"
解决:使用升级语法 修改器
需求:使用修改器将zs4的姓名改为zs44
语法:db.集合名.remove(条件 [, 是否删除一条] )
注意:是否删除一条 true是,false否 默认
db.haijin_c4.remove({},true)
db.haijin_c4.remove({})
db.集合名.insert(JSON数据)
删Delete
db.集合名.remove(条件 [,是否删除一条true是false否默认])
也就是默认删除多条
改Update
db.集合名.update(条件, 新数据 [,是否新增,是否修改多条])
升级语法db.集合名.update(条件,{修改器:{键:值}})
查Read
db.集合名.find(条件 [,查询的列])