1.创建数据库
use DATABASE_NAME
2.删除数据库
use DATABASE_NAME
db.dropDatabase()
3.创建集合
db.createCollection(name,options)
参数 |
类型
|
描述
|
name
|
String
|
要创建集合名称
|
options
|
Document
|
(可选)指定集合内存大小和索引选项
|
字段
|
类型
|
描述
|
capped
|
Boolean
|
(可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定为true,则需要也指定尺寸参数
|
autoIndexID
| Boolean | (可选)如果为true,自动创建索引_id字段的默认值是false |
size
|
number
|
(可选)指定最大大小字节封顶集合。如果封顶如果是true,需要指定这个字段
|
max
|
number
|
(可选)指定封顶集合允许在文件的最大数量
|
db.COLLECTION_NAME.drop()
5.MongoDB支持的数据类型
String
| 在MongoDB中字符串必须是有效的UTF-8 |
Integer
| 存储一个数值。整数可以使32位或64位,这取决于您的服务器 |
Boolean
| 存储一个布尔值(true/false) |
Double
| 存储浮点值 |
Min/Max keys
| 这种类型被用来对BSON元素的最低位和最高位比较 |
Arrays
| 使用此类型的数组或列表或多个值存储到一个键 |
Timestamp
| 时间戳。 |
Object
| 此数据类型用于嵌入式的文件 |
Null
| 这种类型是用来存储一个Null值 |
Symbol
| 此类数据类型作用于字符串相同。但它通常是保留给特定符号类型的语言使用 |
Date
| 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象 |
ObjectID
| 此数据类型用于存储文档的ID |
Binary data | 此数据类型用于存储二进制数据 |
Code
| 此数据类型用于存储到文档中的JavaScript代码 |
Regular expression
| 此数据类型用于存储正则表达式 |
db.COLLECTION_NAME.insert(document)
db.COLLECTION_NAME.save(document)
7.MongoDB查询文档
db.COLLECTION_NAME.find()
db.COLLECTION_NAME.find().pretty()
RDBMS where子句和MongoDB等同语句
操作 |
语法
|
例子
|
RDBMS等同
|
equality
|
{<key>:<value>}
| db.mycol.find({"by":"tutorialsyiibai"}) |
where by='tutorialsyiibai'
|
less than
|
{<key>:{$lt:<value>}}
|
db.mycol.find({"likes",{$lt:50}})
|
where likes<50
|
less than equals
|
{<key>:{$lte:<value>}}
|
db.mycol.find({"likes",{$lte:50}})
|
where likes<=50
|
greater than
|
{<key>:{$gt:<value>}}
|
db.mycol.find({"likes",{$gt:50}})
|
where likes>50
|
greater than equals
|
{<key>:{$gte:<value>}}
|
db.mycol.find({"likes",{$gte:50}})
|
where likes>=50
|
not equals
|
{<key>:{$ne:<value>}]
|
db.mycol.find({"likes",{$ne:50}})
|
where likes!=50
|
AND在MongoDB中的用法
db.COLLECTION_NAME.find({key1:value1,key2:value2});
OR在MongoDB中的用法
db.COLLECTION_NAME.find({$or:[{key1:value1},{key2:value2}]});
AND和OR一起使用
db.COLLECTION_NAME.find({"likes":{$gt:10},$or:[{key1:value1,key2:value2}]});
8. MongoDB update()方法
db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATE_DATA)
例:
db.mycol.update({'title':'MongoDB overview'},{$set:{'title':"New MongoDB Tutorial"}})只更新一条
db.mycol.update({'title':'MongoDB overview'},{$set:{'title':"New MongoDB Tutorial"}},{multi:true})更新多个
9.MongoDB save()方法
db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
10.MongoDB remove()方法
db.COLLECTION_NAME.remove(DELETE_CRITERIA);
db.COLLECTION_NAME.remove(DELETE_CRITERIA,1);删除一个
11.MongoDB投影
设置字段列表值1或0,1用来显示而0用来隐藏字段
db.COLLECTION_NAME.find({},{KEY:1});
db.COLLECTION_NAME.find({},{"title":1,_id:0});不要_id字段
12.MongoDB Limit/限制记录
db.COLLECTION_NAME.find({},{}).limit(2);
db.COLLECTION_NAME.find({},{}).skip(1);
db.COLLECTION_NAME.find({},{}).skip(1).limit(1);只显示第二个文档
13.MongoDB 排序文档
指定排序顺序。1用于升序,-1用于降序
db.COLLECTION_NAME.find().sort({KEY:1})
14.MongoDB索引,ensureIndex()方法
1为字段建立升序索引,-1相反
db.COLLECTION_NAME.ensureIndex({KEY:1});
ensurceIndex方法选项列表
参数
|
类型
|
描述
|
background
|
Boolean
| 在后台建立索引,以便建立索引并不能阻止其他数据库活动。指定true建立在后台。默认false |
unique
|
Boolean
| 创建唯一索引,以便收集不会接受插入索引或键匹配现有的值存储在索引文档。指定创建唯一索引。默认值是false |
name
|
String
| 索引的名称。如果未指定,MongoDB中都生成一个索引名索引字段的名称和排序顺序串联 |
dropDups
|
Boolean
| 创建一个唯一索引的字段,可能有重复。MongoDB的索引只有第一次出现的一个键,从集合中删除的所有文件包含该键的。指定创建唯一索引。默认是false |
sparse
|
Boolean
| 如果为true,指数只引用文档指定的字段。这些索引使用更少的空间,但在某些情况下,特别是各种不同的表现。默认是false |
expireAfterSeconds
|
integer
| 制定一个值,以秒为TTL控制多久MongoDB的文档保留在此集合 |
v
|
index version
|
索引版本号。默认的索引版本取决于mongodb运行的版本在创建索引时
|
weights
|
document
| 权重是从1到99999范围内的数,表示该字段的意义,相对于其他的索引字段分数 |
default_language
|
string
| 对于文本索引时,决定停止词和词干分析器和标记生成规则列表的语言。默认值是english. |
language_override
|
string
|
对于文本索引时,指定的名称在文档中包含覆盖默认的语言,语言字段中。默认值是语言
|
15.MongoDB聚合
聚合操作过程中的数据记录和计算结果返回。聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果。在SQL COUNT(*) 和group by相当于MongoDB的聚集
aggregate()方法
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION);
表达式 |
描述
|
实例
|
$sum | 统计从集合中的所有文件所定义的值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tutorial:{$avg:'$likes'}}}
])
|
$avg
| 所有文档集合中所有给定值计算平均值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tutorial:{$avg:'$likes'}}}
])
|
$min | 获取集合中的所有文件中的相应值的最小值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tut}}
])
|
|
|
|
|
|
|
1.创建数据库
选项参数是可选的,所以只需要指定集合名称。以下是可以使用的选项列表:
4.删除集合
6.MongoDB插入文档
use DATABASE_NAME
2.删除数据库
use DATABASE_NAME
db.dropDatabase()
3.创建集合
db.createCollection(name,options)
参数 |
类型
|
描述
|
name
|
String
|
要创建集合名称
|
options
|
Document
|
(可选)指定集合内存大小和索引选项
|
字段
|
类型
|
描述
|
capped
|
Boolean
|
(可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定为true,则需要也指定尺寸参数
|
autoIndexID
| Boolean | (可选)如果为true,自动创建索引_id字段的默认值是false |
size
|
number
|
(可选)指定最大大小字节封顶集合。如果封顶如果是true,需要指定这个字段
|
max
|
number
|
(可选)指定封顶集合允许在文件的最大数量
|
db.COLLECTION_NAME.drop()
5.MongoDB支持的数据类型
String
| 在MongoDB中字符串必须是有效的UTF-8 |
Integer
| 存储一个数值。整数可以使32位或64位,这取决于您的服务器 |
Boolean
| 存储一个布尔值(true/false) |
Double
| 存储浮点值 |
Min/Max keys
| 这种类型被用来对BSON元素的最低位和最高位比较 |
Arrays
| 使用此类型的数组或列表或多个值存储到一个键 |
Timestamp
| 时间戳。 |
Object
| 此数据类型用于嵌入式的文件 |
Null
| 这种类型是用来存储一个Null值 |
Symbol
| 此类数据类型作用于字符串相同。但它通常是保留给特定符号类型的语言使用 |
Date
| 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象 |
ObjectID
| 此数据类型用于存储文档的ID |
Binary data | 此数据类型用于存储二进制数据 |
Code
| 此数据类型用于存储到文档中的JavaScript代码 |
Regular expression
| 此数据类型用于存储正则表达式 |
db.COLLECTION_NAME.insert(document)
db.COLLECTION_NAME.save(document)
7.MongoDB查询文档
db.COLLECTION_NAME.find()
db.COLLECTION_NAME.find().pretty()
RDBMS where子句和MongoDB等同语句
操作 |
语法
|
例子
|
RDBMS等同
|
equality
|
{<key>:<value>}
| db.mycol.find({"by":"tutorialsyiibai"}) |
where by='tutorialsyiibai'
|
less than
|
{<key>:{$lt:<value>}}
|
db.mycol.find({"likes",{$lt:50}})
|
where likes<50
|
less than equals
|
{<key>:{$lte:<value>}}
|
db.mycol.find({"likes",{$lte:50}})
|
where likes<=50
|
greater than
|
{<key>:{$gt:<value>}}
|
db.mycol.find({"likes",{$gt:50}})
|
where likes>50
|
greater than equals
|
{<key>:{$gte:<value>}}
|
db.mycol.find({"likes",{$gte:50}})
|
where likes>=50
|
not equals
|
{<key>:{$ne:<value>}]
|
db.mycol.find({"likes",{$ne:50}})
|
where likes!=50
|
AND在MongoDB中的用法
db.COLLECTION_NAME.find({key1:value1,key2:value2});
OR在MongoDB中的用法
db.COLLECTION_NAME.find({$or:[{key1:value1},{key2:value2}]});
AND和OR一起使用
db.COLLECTION_NAME.find({"likes":{$gt:10},$or:[{key1:value1,key2:value2}]});
8. MongoDB update()方法
db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATE_DATA)
例:
db.mycol.update({'title':'MongoDB overview'},{$set:{'title':"New MongoDB Tutorial"}})只更新一条
db.mycol.update({'title':'MongoDB overview'},{$set:{'title':"New MongoDB Tutorial"}},{multi:true})更新多个
9.MongoDB save()方法
db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
10.MongoDB remove()方法
db.COLLECTION_NAME.remove(DELETE_CRITERIA);
db.COLLECTION_NAME.remove(DELETE_CRITERIA,1);删除一个
11.MongoDB投影
设置字段列表值1或0,1用来显示而0用来隐藏字段
db.COLLECTION_NAME.find({},{KEY:1});
db.COLLECTION_NAME.find({},{"title":1,_id:0});不要_id字段
12.MongoDB Limit/限制记录
db.COLLECTION_NAME.find({},{}).limit(2);
db.COLLECTION_NAME.find({},{}).skip(1);
db.COLLECTION_NAME.find({},{}).skip(1).limit(1);只显示第二个文档
13.MongoDB 排序文档
指定排序顺序。1用于升序,-1用于降序
db.COLLECTION_NAME.find().sort({KEY:1})
14.MongoDB索引,ensureIndex()方法
1为字段建立升序索引,-1相反
db.COLLECTION_NAME.ensureIndex({KEY:1});
ensurceIndex方法选项列表
参数
|
类型
|
描述
|
background
|
Boolean
| 在后台建立索引,以便建立索引并不能阻止其他数据库活动。指定true建立在后台。默认false |
unique
|
Boolean
| 创建唯一索引,以便收集不会接受插入索引或键匹配现有的值存储在索引文档。指定创建唯一索引。默认值是false |
name
|
String
| 索引的名称。如果未指定,MongoDB中都生成一个索引名索引字段的名称和排序顺序串联 |
dropDups
|
Boolean
| 创建一个唯一索引的字段,可能有重复。MongoDB的索引只有第一次出现的一个键,从集合中删除的所有文件包含该键的。指定创建唯一索引。默认是false |
sparse
|
Boolean
| 如果为true,指数只引用文档指定的字段。这些索引使用更少的空间,但在某些情况下,特别是各种不同的表现。默认是false |
expireAfterSeconds
|
integer
| 制定一个值,以秒为TTL控制多久MongoDB的文档保留在此集合 |
v
|
index version
|
索引版本号。默认的索引版本取决于mongodb运行的版本在创建索引时
|
weights
|
document
| 权重是从1到99999范围内的数,表示该字段的意义,相对于其他的索引字段分数 |
default_language
|
string
| 对于文本索引时,决定停止词和词干分析器和标记生成规则列表的语言。默认值是english. |
language_override
|
string
|
对于文本索引时,指定的名称在文档中包含覆盖默认的语言,语言字段中。默认值是语言
|
15.MongoDB聚合
聚合操作过程中的数据记录和计算结果返回。聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果。在SQL COUNT(*) 和group by相当于MongoDB的聚集
aggregate()方法
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION);
表达式 |
描述
|
实例
|
$sum | 统计从集合中的所有文件所定义的值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tutorial:{$avg:'$likes'}}}
])
|
$avg
| 所有文档集合中所有给定值计算平均值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tutorial:{$avg:'$likes'}}}
])
|
$min | 获取集合中的所有文件中的相应值的最小值 |
db.mycol.aggregate([
{$group:{_id:"$by_user",num_tut}}
])
|
|
|
|
|
|
|