mongoDB-2(1)

主要内容

1. 关系型数据库和非关系型数据库

* Nosql不是关系模型构建的数据库,不保证数据一致性,结构灵活
* NoSql弥补了关系型数据库高并发数据处理速度慢的缺点
* Nosql种类多样,技术成熟度不如关系型数据库

2. mongodb数据库特点,安装,命令设置

3. mongodb的组成结构

4. mongodb的数据类型

5. 数据库操作

* use database 选择数据库不存在则创建
* db.dropDatabase() 删除数据库
* show dbs 查看数据库

命令 : mongodump 备份
mongorestore 恢复
mongostat 数据库监控
mongotop 查看读写时长

6. 集合操作:

db.createCollection() 创建集合
db.collection.insert() 集合不存在自动创建
db.collection.drop() 删除集合
db.collection.renameCollection() 重命名
show collections 查看集合
db.getCollection('class') 获取集合对象

7. 文档插入
insertOne()
insertMany()
insert()
save() 当_id冲突时会替换原文档

8. 查找函数

find(query,field)

************************************************
cookie:

计算机基础课 : 计算机原理,算法导论,编程原理

公众号 : python程序员 python开发者 算法爱好者

app : 知乎 掘金

网站 : 伯乐在线 CSDN

一. 数据操作(续)

1. 查找函数

db.collection.findOne(query,field)
功能: 查找第一个复合条件的文档
参数: 同find
返回:返回查找到的文档

e.g. 查找第一个性别为男的文档
db.class0.findOne({sex:'m'},{_id:0})


2. query操作符使用

操作符:mongodb中使用$符号注明的一个有特殊意义的字符串,用以表达丰富的含义,比如:$lt 表示小于

比较操作符

【1】 $eq 等于 =

e.g. 年龄等于17
db.class0.find({age:{$eq:17}},{_id:0})

【2】 $lt 小于 <

e.g. 字符串可以比较大小
db.class0.find({name:{$lt:'Tom'}},{_id:0})

【3】 $gt 大于 >

e.g. 查找一个区间范围
db.class0.find({age:{$gt:17,$lt:20}},{_id:0})

【4】 $lte 小于等于 <=
【5】 $gte 大于等于 >=
【6】 $ne 不等于 !=

【7】 $in 包含

e.g. 查找年龄在数组范围的
db.class0.find({age:{$in:[17,19,21]}},{_id:0})

【8】 $nin 不包含

e.g. 查找年龄不在数组范围的
db.class0.find({age:{$nin:[17,19,21]}},{_id:0})


逻辑操作符

【1】 $and 逻辑与

e.g. 查找年龄小于19 并且性别为w的
db.class0.find({$and:[{age:{$lt:19}},{sex:{$ne:'w'}}]},{_id:0})

* query中的多个条件本身也表示并且关系

【2】 $or 逻辑或

e.g. 查找年龄大于18或者性别为w
db.class0.find({$or:[{age:{$gt:18}},{sex:'w'}]},{_id:0})

【3】 $not 逻辑非

e.g. 查找年龄不大于18的
db.class0.find({age:{$not:{$gt:18}}},{_id:0})

【4】 $nor 既不也不(多个条件均为假则结果为真)

e.g. 年龄不大于18 性别不为 m
db.class0.find({$nor:[{age:{$gt:18}},{sex:'m'}]},{_id:0})

【5】 混合条件语句

年龄大于等于19或者小于18 并且 性别为 w

db.class0.find({$and:[{$or:[{age:{$gte:19}},{age:{$lt:18}}]},{sex:'w'}]},{_id:0})

(年龄大于等于17的男生) 或者 (姓名叫 Abby 或者Emma)

db.class0.find({$or:[{age:{$gte:17},sex:'m'},{name:{$in:['Abby','Emma']}}]},{_id:0})


数组操作符

【1】 查找数组中包含元素

e.g. 查找score数组中元素包含大于90的文档
db.class2.find({score:{$gt:90}},{_id:0})

【2】 $all 查找数组中同时包含多项

e.g. 查找数组中同时包含87,89的文档
db.class2.find({score:{$all:[87,89]}},{_id:0})

【3】 $size 根据数组的元素个数查找

e.g. 查找数组中包含3个元素的文档
db.class2.find({score:{$size:3}},{_id:0})

【4】 $slice 用于field参数,表示查找数组哪些项

e.g. 查找数组中的前两项
db.class2.find({},{_id:0,score:{$slice:2}})

e.g. 跳过数组第一项,查看后面两项
db.class2.find({},{_id:0,score:{$slice:[1,2]}})

 

转载于:https://www.cnblogs.com/gyl10/p/11461029.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值