MongoDB的逻辑结构
Mongodb | 关系型数据库 |
文档(document) | 行(row) |
集合(collection) | 表(table) |
数据库(database) | 数据库(database) |
BSON与JSON
BSON是Binary JSON.是二进制的格式,能将mongDB的所有文档表示为字节字符串。
JSON是一种轻量级的数据交换格式。它基于JavaScript的一个子集.
help的相关命令
db.help()
db级别的帮助
db.version()
3.2.12
db.stats()
{
"db" : "testdb",
"collections" : 1,
"objects" : 10000,
"avgObjSize" : 48,
"dataSize" : 480000,
"storageSize" : 163840,
"numExtents" : 0,
"indexes" : 1,
"indexSize" : 94208,
"ok" : 1
}
集合级别的帮助
db.table1.help()
db.table1.getDB()
testdb
db.table1.dataSize()
480000
BSON的数据类型
不同数据类型的写入
use test
db.users.insert({"uuid":1})
db.users.insert({"uuid":2,"uname":"hxf","isvip":true,"sex":null,"favorite":["apple","banana",1,2,3],"regtime":new Date()})
查看某个字段的数据类型
db.users.find()
db.users.findOne()
db.users.findOne({"uuid":2})
typeof(db.users.findOne({"uuid":2}).uuid)
number
a= db.users.findOne({"uuid":2})
typeof(a.uuid)
number
typeof(a.isvip)
boolean
typeof(a.sex)
object
typeof(a.favorite)
object
typeof(a.regtime)
object
null的真是含义
db.users.find({"sex":null})
{ "_id" : ObjectId("5c7b25b19f05e5e3c5e349a5"), "uuid" : 1 }
{ "_id" : ObjectId("5c7b21a59f05e5e3c5e349a4"), "uuid" : 2, "uname" : "hxf", "isvip" : true, "sex" : null, "favorite" : [ "apple", "banana", 1, 2, 3 ], "regtime" : ISODate("2019-03-03T00:36:53.125Z") }
代表值为null
代表字段不存在
查找字段存在且为null的值
db.users.find({"sex":null,"sex":{"$exists":true}})
数据类型汇总
1.Null,只有null值,代表空或者不存在
2.布尔,只有true和false
3.数字,64位浮点数(短整型、长整型、浮点数)
4.字符串:utf8字符串
5.数组:值或者列表可表示为数组
6.对象:对象的数据(null,数组,日期)
命名规则
文档的键命名几乎所有utf8字符,只有少数例外:
(1)$开头
(2)\0 (空字符)
(3)_下划线开头
允许“”字符串,没什么意义
集合的命名几乎所有utf8字符,只有少数例外:
(1)$开头
(2)\0 (空字符)
(3)system.开头
(4)""空字符串
数据库的命名几乎所有utf8字符,只有少数例外:
空字符串“”,\0,空格“ ”,.,\ ,/,