MongoDB基础学习

MongoDB属于非关系型数据库

是非关系数据库当中功能最丰富,最像关系数据库的。。。

NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。

NoSQL

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
  • 键 - 值对存储,列存储,文档存储,图形数据库
  • 最终一致性,而非ACID属性
  • 非结构化和不可预知的数据
  • CAP定理
  • 高性能,高可用性和可伸缩性
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

这里写图片描述

这里写图片描述


基本命令

  • show dbs 显示所有数据库的列表

  • db 命令可以显示当前数据库对象或集合

  • use 命令,可以连接到一个指定的数据库

文档:相当于关系数据库下的行,在MongoDB中是collection下一级的

  • 文档中的键/值对是有序的。

  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。

  • MongoDB区分类型和大小写。

  • MongoDB的文档不能有重复的键。

  • 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

集合:类似于mysql中的表结构,在MongoDB中存储文档


创建数据库

  • use DATABASE_NAME

  • 如果数据库不存在,则创建数据库,否则切换到指定数据库。

  • 但是这样创建的数据库并不显示,必须插入一些数据

use qtest
db.qtest.insert({'star':'lord'})
#MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
#在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

删除数据库

  • db.dropDatabase()

  • 删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名。

删除集合

  • db.集合名字.drop()
> use runoob
switched to db runoob
> show tables
site
> db.site.drop()
true
> show tables
> 

MongoDB 创建集合

  • db.createCollection(name, options)
use qq
db.createCollection("student")  #这里也是个坑啊,名字一定要用引号引起来
show collections        #这里,show tables同效果
——也可以直接指明要向哪个集合中插入文档,即使这个集合不存在,插入文档及使用或创建了集合
use qq
db.teacher.insert({'I':'teacher'})

删除集合

- db.集合名字.drop()

文档操作,插入,删除,更新,查询—————————————————————-

- 插入操作—- insert 与save命令相同
db.qtest.insert({
    abc:'123',
    666:'hahaha'
    }
)
- 更新文档——– update和save方法
#update() 方法用于更新已存在的文档
db.test.update({python:'mongo'},{$set:{python:'redis'}})

格式

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
示例
只更新第一条记录:

db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:

db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一条:

db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加加进去:

db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:

db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一条记录:

db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
- 删除文档 用remove函数,最好在删除之前用find判断条件是否正确
db.test.remove({python:'mongo'})

Removed 4 record(s) in 2ms
- 查询操作,find方法

这里写图片描述

  • or条件
db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值