文档:Mongodb数据库.note
链接:http://note.youdao.com/noteshare?id=46dcb0788d9f005392c8b0e4c9e31e4d&sub=09EC956E45294DDC8443C95F9943D6C9
一、客户端启动和服务端开启命令
mongod 服务端
--dbpath
--port
--logpath
mongo 客户端
--port
--host
二、基础命令
show dbs
show collections
show tables
三、如何创建库
1、use 数据库名
2、添加一条数据
db.collectionName.insert({文档})
db.createCollection(name)
3、删除数据库:db.dropDatabase()
删除集合:db.collectionName.drop()
四、CRUD
1、insert---插入
插入一条文档:
db.collectionName.insert({文档})
插入多条文档:
db.collectionName.insert([{文档1},{文档2},{文档3},....])
2、查找--find
db.collectionName.find({查询表达式},{field1:1/0}) --1显示,0不显示
查询表达式
= {key:value}
< $lt
> $gt
<= $lte
>= $gte
!= $ne
{$nin:{age:[1,2,3]}} 查询不在数组中的数据
{$in:{age:[12,13,14]} 查询在数组中的数据
{$all:{hobby:['a','b','c']}} 满足数组中的所有内容的条件
{$mod:{age:[5,1]}
{$and:[{},{},{}]}
{$or:[{},{},{}]}
{$nor:[{},{},{}]}
3、聚合
db.collectionName.aggregate([{管道1},{管道2},{管道3}])
{$match:{查询表达式}}
{$group:{_id:'$field',avg/sum/max/min:{$avg/$sum/$max/$min:1/'$field'}}}
4、游标
将查询结果赋值给一个变量,这个标量就是游标,游标就相当于python中迭代器,我们可以从中一个一个取出查询结果。
var cursor = db.collectionName.find()
cursor.hasNext()---是否有下一个(如果游标到结尾,才为false)
cursor.next()---获取下一个。
cursor.forEach(回调函数)
作用:回调函数接收游标中每一个查询结果,并做批量操作。
5、hash
(1)什么是hash
Hash :散列,通过关于键值(key)的函数,将数据映射到内存存储中一个位置来访问。这个过程叫做Hash
(2)特点
正向快速
逆向困难
输入敏感
冲突避免
(3)作用
给数据打指纹---指纹就是唯一标识--->去除重复
密码存储
(4)什么叫hash碰撞?
(5)字符串加密和文件加密?