手记

mongodb的基础知识总结

sql和monogdb的概念对比

database -> database

table -> collection

row -> document

column -> filed

index -> index

primary key -> primary key

三元素

数据库 集合 文档

文档

文档就是一个对象, 由键和值构成,是json的扩展Bson形式

集合

集合用来存储多个文档

数据库

数据库可以包含多个文档,一个服务器可以有多个数据库

查看当前数据库
db
查看所有的数据库
show dbs
使用即创建
use py3 
默认数据库
test
创建collection
db.createCollection("student")
创建 collection 并指定上限大小

size单位为字节

db.createCollection("student,{cappend : true,size:10})
显示当前数据库下的所有集合
show collections
删除集合
db.student.drop()
数据类型

Object id

Sring : 必须是utf-8

Boolean : 包含 true 和 false

Integer

Double

Arrays

Object : 一个值为一个文档

Null

Timestamp

Date

ObjectID

长度 12 个字节

该值理论上不重复

前4个节表示 当前时间戳

下3个字节机器id

再下2个id mongdb的进程 id

最后 3字节是增量值

插入
db.集合名称.insert(文档)

db.stu.insert({name:"gj",gender:true})
查询
db.stu.find()
更新

默认只修改一行

db.stu.update({name:"hr"},{name:"mnc"})

要修改多行

db.stu.update({name:'ali'},{age:18},{multi:true})
保存

save : 如果_id已经存在就修改 如果没有就创建并添加

db.stu.save({
name:"aaa",
gerder:1
})
删除

删除默认删除多条文档 , 只删除一条如下:

db.stu.remove({gender:0},{justone:true)
全部删除
db.sut.remove({})
查询进阶:只返回一个数据
db.student.finOne({name:"ali"})
比较运算符

$lt

$gt

$gte 大于等于

$ne : 不等于

db.sub.find({count:{$gt:1}})
逻辑运算符

与 {},{}

或 $or {$or:[{},{}]}

选择标题为js 或者 数量大于1的对象

db.sub.find({   $or: [   {title:"js"}   ,   {count:{$gt:1}  }  ]  }  )
在指定list中查询

$in 在list中

$nin 不在list中

db.sub.find( {count: {$in:[2,3]} } )
通过正则表示式来查询

语法 作为value使用 : /正则表达式/

db.sub.find( {title: /^j/ } )
限制数量

只查询符合条件的三条语句

db.stu.find({name:li}).limit(3)
用js 创建集合
for(i=0;i<200;i++){db.t1.insert({_id:i})}
投影

只输出需要的字符

1 显示

0 不显示 , 也可以在显示字段不写

db.stu.find({},{name:1})
排序

1 升序 ,默认为升序

-1 降序

db.stu.find().sort({age:1})
统计全部
db.stu.find().count()
按条件进行统计

统计年龄大于5的数量

db.stu.count({age:{$gt:5}})
消除重复

年龄大于1但是不重复的值 返回值为一个数组

db.<集合名称>.distinct('去重的字段',条件)

db.stu.distinct("age",{age:{$gt:1}})
聚合

对文档进行分门别类后统计

_id : 分类的字段 , null为整个文档
$$ROOT 文档对象

$push 将结果放入list中

db.stu.aggregate([
{$group:{_id:"$gender",counter:{$push:"$$ROOT"}}}

])
1人推荐
随时随地看视频
慕课网APP