从MongoDB 3.2,它使用WiredTiger作为其默认的存储引擎,也可以通过以下语句查询默认的存储引擎
1.mongodb入门命令
2.如何创建数据库
mongodb的库是隐式创建的,你可以use一个不存在的库,然后在该库下创建表即可创建库
3.插入数据
4.查找数据
格式化输出
注:如果不指定_id的话,系统自动生成id(id是主键)
DBQuery.shellBatchSize = 10; 设置查询出显示的结果集,默认显示20条
也可以隐式的创建表
5.删除表
6.删除数据库
7.日期类型
日期类型处理上需要注意以下几点:
(1)是否和时区有关
(2)格式之间的区别
(3)和字符串之间的关系
mongo中的日期类型,使用的是iso格式,通常我们使用ISODate(***)来表示
插入当前时间的时候,我们有两种调用方式:Date() 和 new Date()
对比后我们会发现有如下几点:
(1)使用new Date()插入的日期是符合ISODate格式的,而且这个时间比当前时间早8小时
(2)使用Date()插入的日期是一个字符串,但是它是当前时间
(3)mongo中的date类型是以UTC来存储的,它等于GMT,也就是格林尼治时间,也就是比我们当前的时间要少8小时
但是当我们获取时间的时候需要注意以下几点:
将ISODate格式的时间转换成当前时间toLocaleString()
mongoDB中时间戳Timestamps
可以将输出内容通过javascript转化成日期格式
8.查询值为Null或不存在的字段
MongoDB中不同的运算符对待 null 值不一样.
查找name为null的记录
我们只需要查找name字段为null的数据,而不是将没有name字段的数据也查询出来,可以通过以下方式进行查询
a.如果使用稀疏索引会导致一个不完整的结果,那么,除非 hint() 显示地指定了该索引,否则MongoDB将不会使用这个索引
b.类型筛查
{ name : { $type: 10 } } 查询 仅仅 匹配那些包含值是 null 的 name 字段的文档,亦即 条目 字段的值是BSON类型中的 Null (即 10 )
Type |
Number |
Alias |
Notes |
Double |
1 |
“double” |
|
String |
2 |
“string” |
|
Object |
3 |
“object” |
|
Array |
4 |
“array” |
|
Binary data |
5 |
“binData” |
|
Undefined |
6 |
“undefined” |
Deprecated. |
ObjectId |
7 |
“objectId” |
|
Boolean |
8 |
“bool” |
|
Date |
9 |
“date” |
|
Null |
10 |
“null” |
|
Regular Expression |
11 |
“regex” |
|
DBPointer |
12 |
“dbPointer” |
|
JavaScript |
13 |
“javascript” |
|
Symbol |
14 |
“symbol” |
|
JavaScript (with scope) |
15 |
“javascriptWithScope” |
|
32-bit integer |
16 |
“int” |
|
Timestamp |
17 |
“timestamp” |
|
64-bit integer |
18 |
“long” |
|
Min key |
-1 |
“minKey” |
|
Max key |
127 |
“maxKey” |
c.存在性筛查
该查询只返回那些 没有 包含 条目 字段的文档($exists false 没有包含; true 包含)