非关系型数据库MongoDB的基础操作

MongoDB优点:

1.MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

2.如果负载的增加,它可以分布在计算机网络中的其他节点上这就是所 谓的分片。

3. MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++, PHP,C#等多种语言。

4.你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的 扩展性。

MongoDB 解决Mysql 的“三高”问题:

1.对数据库高并发写入需求

2. 对海量数据高效率存储访问需求

3. 对数据库高扩展和高可用的需求

MongoDB 实际应用:

1. 社交场景,比如朋友圈,附近的人的地点的存储

2. 游戏场景,比如用户当前装备,得分等

3. 物流场景,比如快递的位置,状态,途径

4. 视频场景,比如直播中的点赞数和互动留言等

MongoDB的缺点:

1. MongoDB 不支持事务

2. MongoDB 不能进行多表联查

// 查看磁盘上的所有库

show dbs;

//创建、使用库

use 小汉堡;

//查看当前库对象

db;

//删除库

db.dropDatabase();

//当前库中创建集合、表

db.createCollection('student');

//查看当前库中的集合、表

show tables; 或者 show collections;

//删除集合

db.student.drop();

//插入数据

db.student.insert({stuname:'张三',age:16});

db.student.insert(

{             shuai:true,

              money:true,

              gf:[{stuname:'小红'},{stuname:'小黄'},{stuname:'小孩' }]

});

//删除数据

//全部删除

db.student.remove({});

//带条件的删除

//delete from student where stuname='张三';

db.student.remove({stuname:'张三' })

//注意:符合条件的全部删掉 有几个删几个

db.student.remove({age:16});

//删除主键编号较小一条数据

db.student.remove({age:16},{justOne:true});

//修改

更新数据 语法: db.集合名.update({查询条件},{$set:{更新内容}}, { upsert: , multi: , } )

upsert: 默认为false ,如果查询不到数据,则把跟新输入插入

 multi:默认为false,默认只改一条,true,更改多条

// 如果有多个结果符合条件,只改遇到的第一个(_id最小的那个)

db.student.update(

{stuname:'赵六'},

{$set:{age:18}}

);

//匹配到多个,并且修改多个

db.student.update(

{stuname:'赵六'},

{$set:{age:18}},

{multi:true}

);

// {upsert:true}把没匹配到的数据 作为新增的值添加到mongo中

db.student.update(

{stuname:'小张'},

{$set:{age:11}},

{upsert:true}

);

//在某一列上在原有的值基础之上进行递增1效果可以用$inc运算符来实现 数值改变(既能加又能减)

db.student.update(

{stuname:'小张'},{$inc:{age:100}}

)

//查询

//全查

db.student.find();

//根据条件查询

db.student.find({stuname:'赵六' });

//age小于20岁的人

db.student.find({age:{$lt:20}});

//age大于等于18并且age小于等于60

db.student.find({age:{$gte:18,$lte:60}});

//age大于等于18或者age小于等于120

db.student.find({$or:[{age:{$gte:18}},{age:{$lte:60}},]});

//模糊查询 

db.student.find({stuname:/六/ });

db.student.find({stuname:/^六/ });

db.student.find({stuname:/六$/ });

//分页   (页码-1)*步长

db.student.find().limit(1).skip((3-1)*1);

//统计

db.student.find({stuname:'赵六' }).count();

//排序 1:升序 -1:降序

db.student.find().sort({age:-1});

//索引

db.student.getIndexes();

//创建索引

//建一个升序的索引

db.student.createIndex({age:1});

//降序

db.student.createIndex({age:-1});

//删除索引

db.student.dropIndex({age:1});

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值