MongoDB初探-基本语句和数据结构
MySQL:
1 金老板 18 15512351234
2 小哪吒 20 15312341234
3 Alex 73 15512341234
MongoDB:
{
{
id : 1,
name:金老板,
age : 18,
phone:15512351234
},
{
ids : 1,
names:金老板,
ages : 18,
phones:15512351234
}
}
1.MongoDB的启动 CMD :
mongod --dbpath="D:/data/db/"
客户端 : mongo
2.指令
- show databases - 显示数据库(在磁盘中存储的数据库)
- db - 显示当前使用的数据库
- use db_name - 切换使用中的数据库,如果数据库不存在,在内存中创建一个数据库空间大小是0
- db.user - 在当前数据库的内存中创建一个数据表空间 大小是0
- show tables - 显示当前数据库中的数据表 (存放在磁盘中的)
在MongoDB - 使用了不存在的对象,即创建该对象
3.MongoDB的增删改查:
增加数据:
单个信息增加
不推荐写法
db.user_info.insert({
"name":"alexdsb",
"age":73
})
多条增加:
不推荐写法
db.user_info.insert([{"name":1},{"name":3},{"name":2}])
官方推荐写法:
db.user_info.insertOne({})
db.user_info.insertMany([{},{}])
查找数据:
db.user_info.find({})
db.user_info.find({"age":73})
db.user_info.findOne({"age":73})
修改数据:
官方不推荐 // 修改器:$set
db.user_info.update({"age":73}, {$set:{"name":"JWB"}})
官方推荐
db.user_info.updateOne({"age":73}, {$set:{"name":"JWB"}})
db.user_info.updateMany({"age":73}, {$set:{"name":"JWB"}})
删除数据:
官方不推荐
db.user_info.remove({name:111})
官方推荐
db.user_info.deleteOne({name:1})
db.user_info.deleteMany({name:1})
_id = ObjectID 关系型数据库中的 自增ID 以数据库为核心的自增
表为核心的自增ID
user - book
1 1
2 2
3 3
数据库为核心的自增ID ObjectID宇宙唯一的
user - book - auth
1 4 7
2 5 8
3 6 9
10 11 12
13 14 15
4.数据类型:
- ObjectID 自动创建的 一个字符串 Documents 自生成的 _id
- String 字符串类型 不需要限定长度的
- Boolean:布尔值,true 或者false
- Double:浮点数 (没有float类型,所有小数都是Double) !float是不存在的
- Integer:整型 数据类型
- Arrays:[] 数组类型 在python中就是个列表
- Object:{} 对象类型 在python中就是个字典 在其他语言中叫 Object
- Null == None
- 时间数据类型 - Timestamp - Date
5.MongoDB与关系型数据库概念的变差:
| 关系型数据库 | MongoDB |
|---|---|
| database | database |
| table | Collections |
| row | Documents |
| Colunm数据列 | Field |
6.MongoDB修改器
$set: 强制修改
{$set:{"name":1}} == (dict["key"] = value)$unset: 删除Key 删除Field (del dict["key"])
db.school.updateOne({"school_name":"OldBoy"},{$unset:{"student_list":1}})$inc引用增加
db.user_info.updateMany({},{$inc:{"age":1}})针对Array的操作
$push- 在Array中增加一条数据db.school.updateOne({"class_name":"S16"},{$push: {student_list:{"name":"JSJ","age":25,"gender":"Null"}}})
$pushAll在Array中添加多条数据:db.school.updateOne({"type":"list"},{$pushAll:{"num_list":["a","b","c"]}})
$pull=>[].remove- 在Array中删除符合条件的元素db.school.updateOne({"type":"list"},{$pull:{"num_list":2}}) db.school.updateOne({"school_name":"OldBoy"},{$pull:{"student_list":{"name":"JSJ"}}})
$pullAll- 在Array中删除所有符合条件的元素db.school.updateOne({"type":"list"},{$pullAll:{"num_list":[1,2,3]}})
$pop=>[].pop()- 删除Array中的第一条或最后一条db.school.updateOne({"student_list.name":"JSJ"},{$pop: {"student_list":-1}}) -1:第一个
db.school.updateOne({"student_list.name":"JSJ"},{$pop: {"student_list":1}}) 1: 最后一个
7.$ 字符
存储符合条件Array中元素的下标索引
8.针对Object的更新操作
db.school.updateOne({"school_name":"OldBoy"},{$set:{"student.age":84}})
db.school.updateOne({"school_name":"OldBoy"},{$inc:{"student.age":1}})
9.$数学比较符
$lt <
$gt >
$lte <=
$gte >=
$eq == db.school.find({"age":{"$eq":3}})
$ne != db.school.find({"age":{"$ne":3}})
10.条件分隔:
and :
db.school.find({"class_name":"S16","school_name":"OldBoy"})
db.school.find({$and: [{"school_name":"OldBoy"},{"class_name":"S16"}]})
or :
db.school.find({$or:[{"school_name":"OldBoy"},{"class_name":"S16"}]}) 不同字段的or
in :
db.school.find({"school_name":{"$in":["OldBoy","OldBoySZ"]}}) 相同字段的or
all :
db.school.find({"userlist":{$all:[4,3,2]}}) 子集查询
11.limit sort skip
// limit 选取
db.school.find({}).limit(5)
// skip 跳过
db.school.find({}).skip(5)
// sort 排序
db.school.find({}).sort({ age:-1 })
db.school.find({}).sort({ age:1 })
// 跳过 选取
db.school.find({}).skip(5).limit(5)
db.school.find({}).limit(5).skip(5)
// 排序 跳过 选取
db.school.find({}).limit(5).skip(5).sort({ age:-1 })
// 分页 每页3条
// 第一页
db.school.find({}).limit(3).skip(0).sort({ _id:1 }) // (page - 1) * 3
// 第二页
db.school.find({}).limit(3).skip(3).sort({ _id:1 }) // (page - 1) * 3
// 第三页
db.school.find({}).limit(3).skip(6).sort({ _id:1 }) // (page - 1) * 3
12.pymongo - 使用python操作MongoDB
MongoDB初探-基本语句和数据结构的更多相关文章
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
- MongoDB对应SQL语句
-------------------MongoDB对应SQL语句------------------- 1.Create and Alter 1. sql: crea ...
- mongodb 跟踪SQL语句及慢查询收集
有个需求:跟踪mongodb的SQL语句及慢查询收集 第一步:通过mongodb自带函数可以查看在一段时间内DML语句的运行次数. 在bin目录下面运行 ./mongostat -port 端口号 ...
- Mongodb 与sql 语句对照
此处用mysql中的sql语句做例子,C# 驱动用的是samus,也就是上文中介绍的第一种. 引入项目MongoDB.dll //创建Mongo连接 var mongo = new Mongo(&qu ...
- mongodb的更新语句
MongoDB 使用 update() 和 save() 方法来更新集合中的文档: update()方法: update() 方法用于更新已存在的文档.语法格式如下: db.collection.up ...
- mongodb的查询语句学习摘要
看了些资料,对应只需要知道怎么查询和使用mongodb的我来说,这些足够啦. 左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * fr ...
- MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
在初探一中,我们已经能够顺利的将MongoDB在我们自己的机器上跑起来了. 可是在其bin文件夹以下另一些我们不熟知的工具.接下来,将介绍一下各个小工具的用途以及初探一中MongoDB在data文件夹 ...
- 深入理解mongodb查询条件语句
阅读目录 1. 理解:"$lt"."$lte"."$gt" 和 "$gte" 2. 理解 '$ne' 3. 理解 &qu ...
- MongoDB简单查询语句<平时使用语录,持续更新>
MongoDB查询语句 --查询近三个月的客户使用量 aggregate:使用聚合 match:过滤 group分组 -- mysql中select org_code as 近三个月使用商户 ...
随机推荐
- webpack入门(七) API in LOADERS
介绍 loaders允许你用require() 预处理文件(preprocess files)或者加载他们,在其他的构建工具中,loaders就是一种像“任务(tasks)”的东西.他提供了一种处理前 ...
- POJ--3190 Stall Reservations(贪心排序)
这里 3190 Stall Reservations 按照吃草时间排序 之后我们用 优先队列维护一个结束时间 每次比较堆顶 看是否满足 满足更新后放到里面不满足就在后面添加 #include<c ...
- java == 与 equals
1.基本数据类型用"==" java的基本数据类型,也称为原始的数据类型.它们分别是: byte, short, char, int, long, float, double, b ...
- JAVA版本8u171与8u172的区别
用了java 7好几年了,今天闲来无事,想升级到 java 8,到官网下载的时候发现JAVA放出了8u171与8u172两个版本. 什么情况? 百度一下找到答案:https://blog.csdn.n ...
- haploview画出所有SNP的LD关系图
有时候我们想画出所有SNP的LD关系图,则需要在命令行添加“-skipcheck”命令行,如下所示: java -jar Haploview.jar -skipcheck -n -pedfile 80 ...
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
登陆数据库后,右键打开表提示:目录名无效,执行SQL语句也提示有错误,现在把解决方法分享给大家 1.新建查询 2.点工具栏中[显示估计的查询计划],结果提示Documents and Settings ...
- ansible小结常用模块
根据官方的分类,将模块按功能分类为:云模块.命令模块.数据库模块.文件模块.资产模块.消息模块.监控模块.网络模块.通知模块.包管理模块.源码控制模块.系统模块.单元模块.web设施模块.window ...
- Python对象的创建和赋值
创建类 类的定义以关键字class开头,之后跟着一个名字(用户定义)来标识这个类,并且以冒号结尾.类的内容以缩进(4个空格)表示,如下例的pass表示什么事情也不做. Python命名规则(以字母或者 ...
- 机器学习算法 Python&R 速查表
sklearn实战-乳腺癌细胞数据挖掘( 博主亲自录制) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- u-boot(六)小结
目录 u-boot(六)小结 概述 内存分布 内核交互参数 title: u-boot(六)小结 tags: linux date: 2018-09-27 23:23:05 --- u-boot(六) ...