MongoDB学习总结--基本操作

 

## 数据库

       关系型数据库(RDBMS) mysql sql server oracle...

       非关系型数据库 mongodb redis...

## MongoDB下载

         https://www.mongodb.com/download-center?jmp=homepage#community

## 安装

       一路next

      配置path环境变量

 

## 相关概念

       MongoDB是c++语言编写的

       特点:高性能 易部署 存储数据非常方便

                                        mysql                         mongodb

数据库databasedatabase
tablecollection(集合)
记录rowdocument(文档)
字段columnfield(域)
索引indexindex
表连接table joins不支持
主键primary key

_id字段设置为主键

mongodb可以建立多个数据库

           首先创建一个目录 db 然后打开cmd输入 mongod --dbpath 存储数据库的目录

           数据库启动后,重新打开一个cmd,输入mongo

 

## 数据库常用命令

      show dbs 显示当前所有数据库

    help 查看命令提示

      use movie 创建/切换数据库 当插入一条数据时,数据库自动创建

      db/db.getName() 查看当前使用的数据库

         db.stats() 显示当前数据库状态

        db.version() 查看当前DB版本

        db.getMongo() 查看当前DB链接机器地址

        db.dropDatabase() 删除当前数据库

## 集合相关操作

          创建一个集合 db.createCollection("集合名");

           得到指定名称的集合 db.getCollection("集合名")

           得到所有集合 db.getCollectionNames()

            显当前db所有集合状态 db.printCollectionStats()

## 数据库的CRUD

        增加数据

          db.集合.insertOne({})

          db.集合.insertMany([{},{},...])

           db.集合.save()

修改

         db.集合.updateOne({条件},{$set:{}})

         db.集合.updateMany({条件},{$set:{}})

          db.集合.update({条件},{$set:{}},true,true) 默认对满足条件的一文档进行修改,第三个布尔值表示是否当找不到匹配文档时            插入数据,第四个布尔值表示是否对满足条件的多个文档同时修改

 

删除

      db.集合.remove({}) 删除所有满足条件的文档

       db.集合.deleteOne({条件}) 删除满足条件的第一个文档

 

查询

* 查询所有的文档

db.集合.find() select * from 表

* 查询去重后数据

db.集合.distinct("sex") select distinct sex from 表

* 查询age=22的文档

db.集合.find({"age":22}) select * from 表 where age = 22

* 查询age>22的文档

db.集合.find({"age":{$gt:22}}) select * from 表 where age > 22

* 查询age<22的文档

db.集合.find({"age":{$lt:22}}) select * from 表 where age < 22

* 查询age>=22的文档

db.集合.find({"age":{$gte:22}}) select * from 表 where age >= 22

* 查询age<=22的文档

db.集合.find({"age":{$lte:22}}) select * from 表 where age <= 22

* 查询age>=18且age<=22

db.集合.find({age:{$gte:18,$lte22}})

* 查询name中包含abc数据

db.集合.find({name:/abc/})

select * from 表 where name like %abc%

* 查询name中以abc开头数据

db.集合.find({name:/^abc/})

select * from 表 where name like abc%

* 查询指定列name age数据

db.集合.find({},{name:1,age:1})

select name, age from 表

* 查询指定列name age数据 age>22

db.集合.find({age:{$gt:22}},{name:1,age:1})

select name, age from 表 where age > 22

* 按照年龄排序

升序 db.集合.find().sort({age:1})

select * from 表 order by age asc

降序 db.集合.find().sort({age:-1})

select * from 表 order by age desc

* 查询name=zs age=19的数据

db.集合.find({name:"zs",age:19})

select * from 表 where name="zs" and age = 19

* 查询前n条数据

db.集合.find().limit(5)

select top n * from 表

* 查询前8条以后数据

db.集合.find().skip(10)

select * from 表 where id not in (select top 8 * from) 表

* 查询5-10之间的数据

db.集合.find().limit(5).skip(5)

* 查询第一条数据

db.集合.findOne()

* 查询某个结果集的记录条数

db.集合.find({age:{$gte:18}}).count()

select count(*) from 表 where age>=18

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值