zoukankan      html  css  js  c++  java
  • mongodb学习

    Evernote Export

    1、梳理知识点
    1、核心模块 : fs http querystring url
    http: 搭建服务器 createServer(function( req,res ){ })
    var cheerio = require("cheerio");
    var fs= require("fs");
    http.get("http://news.baidu.com",function(res){
    var result = "";
    res.on("data",function(data){
    result+=data;
    })
    res.on("end",function(){
    var $ = cheerio.load(result); cheerio对象 (类似jquery)
    var ulist = $(".ulist");
    var resStr = "";//将所有的新闻都提取出来
    for( var i = 0 ; i < ulist.length ; i++ ){ //遍历每一个ul
    resStr += ulist.eq(i).find("a").text() +" ";
    }
    //将提取出的新闻 存入到一个文件中
    fs.writeFileSync("1.txt",resStr)
    })
    })
    fs模块 : readdir mkdir rmdir readFile readFileSync writeFile writeFileSync appendFile unlink rename
    stat
    pipe()
    url 中解析文件的路径 : url.parse( "",true ) format() resolve()
    querystring escape unescape stringify parse
    2、第三方模块 : supervisor cheerio
     
    1、判断服务器上面有没有upload目录。没有就创建这个目录。有就提示目录已经存在
    stat
    mkdir
    fs.stat("upload",function(err,stats){
    if( err ){ //没有目录 就创建目录
    fs.mkdir("upload",function(){
    console.log("创建成功");
    })
    }else{
    console.log("目录已存在");
    console.log(stats.isDirectory());
    }
    })
     
    events模块
    事件的引入及创建
    var events=require('events');
    var EventEmitter=new events.EventEmitter();
    事件监听 on
    广播方法 emit("事件",“发送的数据”)
    path模块 :
    extname() 获取文件的扩展名 path.extname(文件)
    __dirname 获取绝对路径 (直接使用)
    mongoDB使用 :
    第一步 :安装mongodb程序
    第二步 : 进入安装目录 C:Program FilesMongoDBServer3.4in, 通过 mongod --dbpath e:db1806 (数据库文件位置) 启动服务
    第三步 : 打开cmd 进入到 C:Program FilesMongoDBServer3.4in 目录下, 通过执行mongo命令,连接本地服务器
    如果要连接远程服务器 ,使用 mongo 远程ip:27017
    数据库相关概念
    一、数据库和文件的主要区别
    1、 数据库有数据库表、行和列的概念,让我们存储操作数据更方便
    2、 数据库提供了非常方便的接口,可以让 nodejs、php java .net 很方便的实现增加修改删 除功能。
    二、关系型和非关系型数据库的介绍
    关系型数据库 mysql sql oracle
    非关系型数据库 mongoDB
    三、mongodb介绍
    MongoDb 介绍 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像 关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类 型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以 实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、 易使用,存储数据非常方便。
    四、使用 :
    1、新建一个存放数据库的文件夹,注意:不能有中文和空格,建议不要放在 C 盘
    2、启动 MongoDb 服务 服务端: mongod 开启数据库服务 mongod --dbpath d:mongodbtest
     
    数据库的相关命令
    show dbs 查看所有数据库
    use student 使用数据库、创建数据库
    显示当前的数据集合(mysql 中叫表) show collections
    删除数据库,删除当前所在的数据库 db.dropDatabase();
    删除集合,删除指定的集合 删除表
    语法 : 删除集合 db.COLLECTION_NAME.drop()
    例如 : db.user.drop()
    添加数据 (添加数据同时创建表) 或先创建集合 db.createCollection("name")
    语法 :
    db.表名.insert({"name":"zhangsan"}); student 集合名称(表) 插入多条数据 使用[{},{},{},....]
    sb.user.save({ "name":"jack","age":90 }) 插入一条数据
    数据查询操作
     
    查找数据 find()
     
    1、查询所有记录db.userInfo.find();
    2、查询不重复数据 db.userInfo.distinct("name");
    3、查询 age = 22 的记录 db.userInfo.find({"age": 22}); ($ne 不等于)
    4、查询 age > 22 的记录db.userInfo.find({age: {$gt: 22}});
    5、查询 age < 22 的记录db.userInfo.find({age: {$lt: 22}});
    6、查询 age >= 25 的记录db.userInfo.find({age: {$gte: 25}});
    7、查询 age <= 25 的记录 db.userInfo.find({age: {$lte: 25}});
    8、查询 age >= 23 并且 age <= 26 注意书写格式db.userInfo.find({age: {$gte: 23, $lte: 26}});
    9、查询 name 中包含 mongo 的数据 模糊查询用于搜索db.userInfo.find({name: /mongo/});
    10、查询 name 中以 mongo 开头的db.userInfo.find({name: /^mongo/});
    11、查询指定列 name、age 数据db.userInfo.find({}, {name: 1, age: 1});
    12、查询指定列 name、age 数据, age > 25db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
    13、按照年龄排序 1 升序 -1 降序 升序:db.userInfo.find().sort({age: 1});
    14、查询 name = zhangsan, age = 22 的数据db.userInfo.find({name: 'zhangsan', age: 22}); 并且
    15、查询前 5 条数据db.userInfo.find().limit(5);
    16、查询 10 条以后的数据db.userInfo.find().skip(10);
    17、查询在 5-10 之间的数据db.userInfo.find().limit(10).skip(5);
    18、or 与 查询db.userInfo.find({$or: [{age: 22}, {age: 25}]});
    19、findOne 查询第一条数据db.userInfo.findOne();
    20、查询某个结果集的记录条数 统计数量db.userInfo.find({age: {$gte: 25}}).count();
     
     
    修改数据
    修改数据 : update()
     
    查找名字叫做小明的,把年龄更改为 16 岁:
    1db.student.update({"name":"小明"},{$set:{"age":16}});
     
    查找数学成绩是 30,把年龄更改为 33 岁:
    1db.student.update({"score.shuxue":30},{$set:{"age":33}});
     
    修改 (如果不存在是否新增是否修改多条)
    db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
     
     
    删除数据
    清空所有数据 db.users.remove({})
    删除数据 db.users.remove({age: 132});
     
     
    nodejs操作数据库 mongodb
    先安装mongodb模块 : npm install mongodb@2.2.19 --save
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——网络节点的安装
    OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制节点的安装
    OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】——序
    在Openstack H版部署Nova Cell 时 ,终端输入nova service-list 和 nova host-list 命令将报错
    OpenStack G版以后的Availability Zone与Aggregate Hosts
    ubuntu设置WPA2-PSK的wifi热点(AP)——hostapd+dhcpd
    公有云开启全面竞争时代——青云QingCloud
    ethtool的基本设置
    OpenStack网络的前世今生
    Nova 无法向虚机注入密钥
  • 原文地址:https://www.cnblogs.com/l8l8/p/9294817.html
Copyright © 2011-2022 走看看