mongo.dml
2016-12-13 11:03:50 65 举报
AI智能生成
mongodb
作者其他创作
大纲/内容
database连接
database操作
use mydb
切换数据库
创建数据库
数据库为空,则在show时不显示
所有修改数据库操作基于mydb
show dbs
查看所有数据库
db
查看当前use的数据库
db.dropDatabase()
删除数据库
collection操作
use mydb
所有操作基于数据库mydb执行
db.collection.drop()
删除集合
document操作
use mydb
所有操作基于数据mydb执行
数据插入
db.mycol.insert({"key" : "value"})
db.mycol.insert(myvar)
myvar=({"key" : "val"})
数据查找
db.col.find()
查看collection下所有document
逻辑条件
等于
{<key>:<value>}
小于
{<key>:{$lt:<value>}}
小于或等于
{<key>:{$lte:<value>}}
大于
{<key>:{$gt:<value>}}
大于或等于
{<key>:{$gte:<value>}}
不等于
{<key>:{$ne:<value>}}
大于并小于
{<key> : { $gt : <value>, $lt : <value>}
and
{"key1" : "value1", "key2" : "value2"}
key1 = value2 and key2 = value2
or
{ "key" : "value",
$or : [
{"key1" : "vaule1"}, {"key2" : "value2"}
]
}
key = value and ( key1 = value1 or key2 = value2)
类型条件
类型映射
Double : 1
String : 2
Object : 3
Array : 4
Binary data : 5
Undefined : 6
已废弃
Object id : 7
Boolean : 8
Date : 9
Null : 10
Regular Expression : 11
JavaScript : 13
Symbol : 14
JavaScript (with scope) : 15
32-bit integer : 16
Timestamp : 17
64-bit integer : 18
Min key : 255
使用-1
Max key : 127
db.col.find({<key> : { $type : 2}} )
查询数量限制
limit
limit(number)
指定查询返回记录数
skip
skip(number)
指定从记录数中跳过前number条记录
查询排序
sort({<key> : 1})
1- 升序排序
-1 - 降序排序
db.col.find().pretty()
数据更新
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
<query>
查询条件
<update>
更新字段及结果
upsert
可选,若不存在,true-插入;false-不插入
multi
可选,true-只更新查找到的第一条记录;false-更新所有查找到的记录
writeConcern
可选,抛出异常的级别
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
document完整文档数据,需要指明id进行更新
writeConcern
可选,抛出异常的级别
数据删除
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
<query>
可选,查询条件
justOne
可选,默认为false,true-只删除一条;false-删除所有记录
writeConcern
可选,抛出异常的级别
聚合操作
MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。
管道操作是可以重复的。
操作
$project
修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
$match
用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
$limit
用来限制MongoDB聚合管道返回的文档数
$skip
在聚合管道中跳过指定数量的文档,并返回余下的文档
$unwind
将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值
$group
将集合中的文档分组,可用于统计结果
操作
$sum
aggregate([{$group : {_id : "$<group_by_key>", <output_key> : {$sum : num}}}])
select sum(group_by_key) * num as output_key from col group by group_by_key
$avg
aggregate([{$group : {_id : "$<group_by_key>", <output_key> : {$avg : "$<avg_key>"}}}])
select group_by_key, avg(avg_key) as output_key from col group by group_by_key
$min
aggregate([{$group : {_id : "$<group_by_key>", <output_key> : {$min : "$<min_key>"}}}])
select group_by_key, min(min_key) as output_key from col group by group_by_key
$max
db.mycol.aggregate({$group : {_id : "$<group_by_key>", <output_key> : { $max : "$age"}}})
select group_by_key, min(min_key) as output_key from col group by group_by_key
$push
aggregate([{$group : {_id : "$title_var", age : { $push : "$push_key"}}}])
将聚合输出的avg_key转化为数组
$addToSet
aggregate([{$group : {_id : "$<group_by_key>", <output_key> : { $addToSet : "$age"}}}])
在结果文档中插入值到一个数组中,但不创建副本。
$first
aggregate([{$group : { _id : "$<group_by_key>", <output_key> : {$first : "$name"}}}])
根据资源文档的排序获取第一个文档数据。
$last
aggregate([{$group : { _id : "$<group_by_key>", <output_key> : {$last: "$name"}}}])
根据资源文档的排序获取最后一个文档数据
$sort
将输入文档排序后输出
$geoNear
输出接近某一地理位置的有序文档
index
创建索引
db.ensureIndex({<key1> : 1, <key2> : -1}, options...)
排序
1-升序
2-降序
background
boolean, 执行期间阻塞其他操作
true-在后台创建索引,执行期间不阻塞其他操作
false-默认,执行期间阻塞其他操作
unique
bool, 唯一索引
true-唯一索引
false-默认,非唯一索引
name
string-索引的名称。若未指定,通过过连接索引的字段名和排序顺序生成一个索引名称
dropDups
bool,创建唯一索引时删除重复记录
true-删除,创建唯一索引
false-默认,创建非唯一索引
sparse
bool,对文档中不存在字段数据不启用索引
true-在索引字段中不会查询出不包含对应字段的文档
false-默认
expireAfterSeconds
int,设置生存时间(TTL, Time To Live)。数据在存储n秒后,自动被数据库删除
v
索引的版本号,默认的索引版本取决于mongod创建索引时运行的版本。
weights
索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_language
对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语。
language_override
对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language。
范围
集合中索引不能超过64个
索引名的长度不能超过125个字符
一个复合索引最多可以有31个字段
不能使用索引
正则表达式及非操作符
算术运算符
$where 子句
ObjectId
格式
时间戳
1~4字节
机器标示码
5~7字节
进程ID
8~9字节
随机数
10~12字节
DBRef
格式
db
数据库名称
ref
集合名称
id
引用id
0 条评论
下一页