mongodb学习笔记

mongodb学习笔记

关于mongodb
  • mongodb是面向文档型的数据库
  • 在mysql里面是一个个的数据表,但是在mongodb里面是一个个的集合,集合里面是一个个的文档
  • 在mysql里面的数据表中是一行行的数据,但是在mongodb里面的文档中是一个对象的集合,每个对象类似一行的数据
  • mongodb是以键值对的形式保存数据的
mongodb的运行
  • 在mongodb的安装目录下的bin下有两个重要的程序

    mongo.exemongod.exe

  • 其中mongod.exe是启动Mongodb的程序,程序启动后运行mongo.exe,然后就可以在特定的mongodb命令行中执行指令,进行数据的增删改查

  • 打开cmd,运行mongodb的启动指令: (D:/mongodb/server/data/db 自己mongodb中存放数据库的位置)

    //先启动数据库
    mongod --dbpath=D:/mongodb/server/data/db
    //再连接数据库
    mongo
    
mongodb基础指令
常用指令
//查看已经存在的数据库
show dbs

//切换到指定的数据库(无论数据库是否存在,均可切换成功
use 数据库名称

//查看当前所在的数据库
db

//查看当前数据库下一共有哪些文档集合
db.getCollectionNames()

插入指令
//向指定的集合录入一条文档(如果集合不存在会自动创建)
//例子:db.users.insert({user:'你好',age:'18'})
db.集合名.insert(文档)

//向指定集合插入多条文档
//例子:db.users.insert([{user:'你好',age:'18'},{user:'你好',age:'18'}])
db.集合名.insert([文档1,文档2])

//插入数据的其他写法
db.集合名.insertMany([文档1,文档2])//插入多条数据
db.集合名.insertOne(文档)//插入单条数据
查询指令
//查询
db.集合名.find(条件,显示的字段)//入没有条件,则查找整个集合
db.users.find({username: '你好'})

//查询条件为数字,判断大小时
db.user.find({age: {$gt:20}})//查询条件为age>20的数据
db.user.find({age:{$lt:20}})//查询条件为小于20的数据
db.user.find({age:{$gte: 20}})//查询条件为age>=20的数据

//范围查找
db.user.find({age:{$in:[10,20]}})//查找age数值再10与20范围内的数据

//单字段多条件查找,匹配所有符合的数据
db.user.find({link:{$all:['苹果','雪梨']}})//查询user集合中link字段中包含'苹果'和'雪梨'的数据

//匹配不符合条件的数据
db.user.find({
    age:{
        $nin: [10,20]
    }
})//查询user集合中age字段不符合条件的所有数据

//取反查询
db.user.find({
    age:{
        $ne:10
    }
})
db.user.find({
    age:{
        $not:{$gt:20}
    }
})//查询user集合中除age字段大于20外的所有数据的

//模糊查找
db.jobs.find({
    link:{$regex:/苹/ig}
})//通过正则表达式匹配link字段中带'苹'字的数据

//多字段多条件查询
db.user.find({
    age:{$gt:10},
    name:{$in: ["王超"]}
})//查询同时满足年龄大于10,名字为王超的数据

//||或条件查询
db.user.find({
    $or:[
        {age:{$gt:10},
        {name:{$in: '王超'}}
    ]
})//查询满足年龄大于10,或者名字为王超的数据

//固定条数查询
db.user.find().limit(5)//查询user集合中的五条数据

//跳过xx条数据查询后面的
db.user.find().skip(5).limit(5)//跳过开始的五条数据,查询后面的五条数据

//分页查询
//(page-1)*limit = 需要跳过的条数


//数据排序
//有排序条件时会先排序,再进行其余操作,比如跳过以及固定条数查询
db.user.find().skip(10).limit(5).sort({id:1})//id为需要排序的字段名,它的值为1时排序为正序,它的值为-1时排序为倒序
修改指令
db.user.update({name:'王超'},{$set:{age: 99}})
//update方法,有两个参数,第一个时需要修改的条件,第二个时满足条件后修改的字段及内容

//字段自增自减修改
db.users.update({name:'王超'},{$inc:{age:2}})//修改满足name为王超的数据中的age字段值为2,为负债时为自减

//删除某个字段的值
db.user.update({name:'王超'},{$unset:{height:1}})//删除name字段值为王超的数据中height字段的值

//数组字段添加数据
db.user.update({name: '王超'},{$push:{link:'爱好'}})//在name值为王超的数据中的类型为数组的link字段添加值为‘爱好’

//数组字段删除数据
db.user.update({name: '王超'},{$pop:{link:1/-1}})//在name值为王超的数据中的类型为数组的link字段删除一个值,为1时删除第一个,为-1时删除最后一个

//数组字段指定删除元素
db.user.update({name: '王超'},{$pull:{link:'爱好'}})//在name值为王超的数据中的类型为数组的link字段删除一个固定值‘爱好’

删除指令
//删除一整条数据
db.user.remove({name:'王超'})//删除所有name字段值为王超的所有数据

//删除一条数据
db.user.remove({age:10},{justOne:true})//删除name字段值为王超的的集合中的第一条数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值