mongdb学习笔记

来源:互联网 发布:网络是利与弊 编辑:程序博客网 时间:2024/04/30 21:55


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
(可选)指定封顶集合允许在文件的最大数量
4.删除集合
    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
此数据类型用于存储文档的IDBinary data此数据类型用于存储二进制数据
Code
此数据类型用于存储到文档中的JavaScript代码
Regular expression
此数据类型用于存储正则表达式6.MongoDB插入文档
    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.创建数据库
    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
(可选)指定封顶集合允许在文件的最大数量
4.删除集合
    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
此数据类型用于存储文档的IDBinary data此数据类型用于存储二进制数据
Code
此数据类型用于存储到文档中的JavaScript代码
Regular expression
此数据类型用于存储正则表达式6.MongoDB插入文档
    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}}
])











0 0