liangzhiwen

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
dbhelper.py
用户登录和注册(加密算法)
加密导包 import hashlib   或者使用Md5 加密

MongoDB  —》JSON

service mysql start

service mongod start


数据库(添加,查看,删除) —》集合(创建,删除,添加数据)
查看:
show dbs;  (show databases;)

使用:
use 数据库;

随意use数据库名,但是不一定数据库就会存在。只有向数据库中添加集合,数据库才会创建

创建集合:(table)
db.createCollection(‘集合名字’)   ——》存在数据库

删除:
要想删除哪个数据库,就必须先use school;
然后: db.dropDatabase();


查看当前正在使用的数据库:
db
mytest

集合的操作:
> use mytest;
switched to db mytest
> db.createCollection('employee');  —设置没有上限集合
{ "ok" : 1 }
> db.createCollection('dept',{capped:true,size:12}); —设置了上限集合
{ "ok" : 1 }
> show tables;   — 查看集合
dept
employee
> show collections;  —查看集合
dept
employee
> db.employee.drop();  — 删除集合  db.集合名字.drop()
true
> show collections;


添加数据:
> db.dept.insert({dname:'sales',loc:'beijing'});   —》 直接添加一个文档对象
WriteResult({ "nInserted" : 1 })
> db.dept.insert({dname:'accounting',loc:'shanghai'},{dname:'research',loc:'zhengzhou'});
WriteResult({ "nInserted" : 1 })
> db.dept.find()
{ "_id" : ObjectId("5b8f521e5f29fed989e6d8c8"), "dname" : "sales", "loc" : "beijing" }
{ "_id" : ObjectId("5b8f525d5f29fed989e6d8c9"), "dname" : "accounting", "loc" : "shanghai" }
> d1={dname:'research',loc:'zhengzhou'}   —》创建d1文档对象 d1={。。。。。}
{ "dname" : "research", "loc" : "zhengzhou" }
> d1.desc='aaaa'   ——》 动态给d1添加新的字段
aaaa
> db.dept.insert(d1)   ——》 再将整个d1insert到dept中
WriteResult({ "nInserted" : 1 })
> db.dept.find();   ——》 查询文档中的所有数据
{ "_id" : ObjectId("5b8f521e5f29fed989e6d8c8"), "dname" : "sales", "loc" : "beijing" }
{ "_id" : ObjectId("5b8f525d5f29fed989e6d8c9"), "dname" : "accounting", "loc" : "shanghai" }
{ "_id" : ObjectId("5b8f53235f29fed989e6d8ca"), "dname" : "research", "loc" : "zhengzhou", "desc" : "aaaa" }

db.aa.insert([{a:55,b:44},{a:33,b:22,c:67,d:789}])   —>批量添加
总结: 文档结构不是固定的。


删除:
格式: db.集合名称.remove({})

db.集合名称.remove({})   清空集合中数据
db.集合名称.remove({key:value})  有条件的删除数据


更新:
格式: db.集合名称.update(query,value,options)
db.aa.update({a:100},{a:101,b:1000})   ——> 替换原来的内容

$set: 设置值
db.aa.update({a:101},{$set:{a:102}})
$inc:
db.aa.update({a:8},{$inc:{b:10}}) 


保存:save()  保存修改

db.集合.save(document)

db.集合.save({a:1000,b:1000})

db.集合.insert()

var d1 = db.集合.findOne({a:22})
d1.字段=值
打印d1 
db.集合.save(d1)


查询:

find()  查询所有

findOne()  获取第一条记录

limit()  获取指定的数量
skip(n)  跳过n条记录
通常可以通过limit和skip的结合完成分页操作
db.aa.find().skip(0).limit(3)
db.aa.find().skip(3).limit(3)
db.aa.find().skip(6).limit(3)
db.aa.find().skip(9).limit(3)

page     count=3
总结:
db.aa.find().skip((page-1)*count).limit(3)

limit和skip换位置也是相同的结果


投影: 就是查询指定字段的值select ename,job  from employee

db.集合名.find({},{字段名:1或者0})   1 表示显示字段信息   0 表示不显示字段信息  
注意:_id如果不声明,默认是显示的  _id:0 则不显示


排序:sort({字段:1或者-1})

db.aa.find().sort({a:-1})   按照a降序排列
db.aa.find().sort({a:1})  按照a升序排列

db.aa.find().sort({a:-1,b:-1})  先按照a降序排列,如果a有相同的则按照b降序排列


统计数目:类似聚合函数中count(*)
count() 函数

db.aa.find().count()  统计aa集合的记录数有多少

去重:
语法: db.集合.distinct(‘去重的字段’)
 db.aa.distinct('a')

强调:db.aa.find({},{a:1}).distinct(‘a’)  报错


关系查询:
>     <      >=    <=

$gt  $lt  $gte  $lte

db.aa.find({字段:{$gt:6}})

db.aa.find({字段:{$lt:6}})

逻辑: {$or:[{条件1},{条件2}]}  符合条件1或者符合条件2 
默认是与and  {a:{$gt:8},b:{$lt:10}}   a>8 and b<10

范围: $in  $nin
db.aa.find({a:{$in:[7,8,18]}})

总结:

find()

findOne()

pretty() 格式化


投影:指明字段
去重: distinct()
排序: sort()
分页: limit() skip()
关系: $gt  $lt  $ne $gte $lte
逻辑: $or 默认是and
范围:   $in  $nin
统计:  count()

 

posted on 2018-09-12 09:44  liangzhiwen  阅读(95)  评论(0编辑  收藏  举报