进入官网:https://www.mongodb.com
下载安装(傻瓜式安装) 配置环境变量(bin) 在C盘根目录下新建文件夹:c://data/db 在终端输入 mogond 如果看到 waiting for connections on port 27017 这句话,说明安装成功(一般在最后几行)
常用命令:
终端输入:mongo
之后便可以执行相应的命令
定义变量
var a=5
输出变量
print(a);
显示数据库
show dbs //会显示出系统中的所有数据库
使用 / 使用数据库use
use mydb //如果没有这个数据库,则会创建这个数据库并使用,有就使用
显示当前数据库
db
显示集合
show collections
插入
db.user.insert({"name":"linda"})
查询:
db.user.find() //查询所有数据
db.user.findOne() //查询第一条数据
修改
db.user.update({查询},{修改})
删除
db.user.remove(条件)
删除集合(所有数据)
db.user.drop()
删除当前数据库
db.user.dropDatabase()
数据更新
$set:修改指定的值
db.user.updata({name:"lisi"},{$set:{age:20}})
//将user表中 lisi 的age修改为20
$unsert :删除一个key值和其对应的value
db.user.updata({name:"lisi"},{$unset:{"hobby":""}});
//删除user表中 lisi 的hobby
upsert:有指定属性,就修改为指定的值,没有就插入
db.user.updata({name:'lisi'},{$set:{school:'linda'}},{upsert:true})
//若lisi的school属性不存在,则增加school:'linda'
//若存在,则将其值修改为linda
multi
db.user.updata({},{$set:{hobby:[]}},{multi:true)
//清空所有的hobby
db.user.updata({},{$set:{hobby:['敲代码']}},{multi:true})
//所有的hobby属性值都为 敲代码
$push:不管数组中是否存在,都加入数组
db.user.updata({name:'zhangsan'},{$push:{hobby:'弹吉他'}})
//给zhangsan的hobby属性添加一个值 ‘弹吉他’
$addToSet:如果数组中已经存在这个值了,就不添加,否则,添加
db.user.updata({name:'zhangsan'},{$addToSet:{hobby:'弹吉他'}})
$each
db.user.updata({name:'lisi'},{$$addToSet:{hobby:{$each:newHobby}}})
$set
db.user.updata({name:'lisi'},{$set:{'hobby.0':'健身'}})
//将lisi的第一个hobby改为 健身
//数组下标从 0 开始
查询 find()
$gte:大于 $lte:小于
db.user.find(
{age:{$gte:20, $lte:30}}
//查询年龄大于20且小于30的
{name:true,age:true,_id:false}
//显示的字段名称,true表示显示,false不显示
)
$in
db.user.find(
{age:{$in:[20,30]}},//查询年龄大于20且小于30的
{name:true,age:true,_id:false}
)
$or 、 $and 、 $not
db.user.find(
$or:[
{age:{$gte:20}},
{hobby:'敲代码'}
],
{name:true,age:true,_id:false}
)
// $or:满足其中一个条件就行
// $and:满足所有条件才行
// $not:不包含任何一个条件
db.user.find(
{hobby:'敲代码'},// 字符串 只有hobby里包含'敲代码'就行
{hobby:[敲代码]},//数组 hobby里只有 ‘敲代码’才满足
{name:true,age:true,_id:false}
)
数组 $all 、 $in 、 $size
db.user.find(
{hobby:{$all:['敲代码','篮球']}}
// $all :包含所有才满足
{hobby:{$in:['敲代码','篮球']}}
//有一项就满足
{hobby:{$size:3}}
//数组长度为3才满足
)
分页limit 、 skip 、 sort
db.user.find(
{}, // 空对象 表示查询所有数据
{name:true,age:true,_id:false}
).limit(10).skip(5).sort({age:-1})
//每次查询10条数据 ,跳过5条,(即第一次查询到的数据为5-14)
// -1 表示按年龄降序