zoukankan      html  css  js  c++  java
  • mongoDB 使用学习笔记

      1、安装mongoDB

      下载安装mongoDB,并且在所安装的直接根目录下,新建一个文件夹,data/db

      假设安装在e盘,进入mongoDB的安装/bin目录下,打开命令

        mongod --dbpath e:data

    2、打开mongo.exe执行命令

      (1)查看数据库: use.dbs

      (2)创建数据库: use mydb

         PS:刚创建的数据库,使用命令行查看数据库的时候是看不到新建的数据库的,如果要显示他,那就需要向我们新创建的数据库添加数据。MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中

      (3)删除数据库:

           首先,切换到要删除的数据库里面:use mydb

         然后,db.dropDatabase()

      (4)插入数据: db.mydb.insert({'username': 'admin','password': 123})

      (5)查看数据:

        <1>查看所有数据: db.mydb.find() 或者是 db.mydb.find().pretty() 

          这两者的差别是显示格式的区别

        <2>根据条件查看数据(end条件): db.mydb.find({'username':'admin'}) 【条件可以多个】

          

         <3>$or条件

           db.mydb.find($or:{'username':'admin'})

        <4>db.mydb.find({},{'username':1,_id:0})

          第一个 {} 放 where 条件,为空表示返回集合中所有文档。

          第二个 {} 指定那些列显示和不显示 (0表示不显示 1表示显示)。

      (6)更新数据:

        <1>只更新找到的第一条

          db.mydb.update({'username':'admin'},{$set:{'username':'peoson1'}})

        <2>更新找到的所有

          db.mydb.update({'username':'admin'},{$set:{'username':'peoson1'}},{multi:true})

          或者

          db.mydb.update({'username':'admin'},{$set:{'username':'peoson1'}},false,true)

        <3>根据条件查找,更新

          

        (7)删除数据:

          <1>删除找到的记录

             db.mydb.remove({'username':'pserson1'})

          <2>只删除找到的第一条记录

             db.mydb.remove({'username':'pserson1'},1)

          <3>删除所有数据

             db.mydb.remove({})

        (8)$type操作符

          

          使用:

            db.mydb.find({'usernmae':{$type:2}})

        (9)限制读取的记录条数:limit(num)方法

        (10)跳过指定数量的数据,skip(num) ,默认num=0

           db.mydb.find().skip(10).limit(12): 跳过前10条,返回12条数据,skip和limit结合就能实现分页

        (11)排序:sort()

           db.mydb.find().sort({KEY:1}),其中,KEY设置为1为升序,设置成-1为降序,默认为1即升序

        (12)索引:ensureIndex()

           db.mydb.ensureIndex({KEY:1, ...}),其中,KEY设置为1为升序索引,设置成-1为降序索引,默认为1即升序

           并且通过在创建索引时加background:true 的选项,让创建工作在后台执行

              db.values.ensureIndex({KEY:1, ...}, {background: true})

        (13)聚合: aggregate()

           <1>db.mydb.aggregate([{$group: {_id: ‘$username’, num: {$sum: 1}}}])

            上面这条查询的是字段username字段对数据进行分组,并计算username字段相同值的总和。

            

            表达式:

              $sum(总和)、$avg(平均值)、$min(最小值)、$max(最大值)、$push(在结果文档中,插入只到一个数组中)、$addToSet(在结果文档中插入值到一个数组中,但不创建副本)、$first(根据资源文档的排序获取第一个文档数据)、$last(根据资源文档的排序获取最后一个文档数据)

           <2>管道: 

        • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
        • $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
        • $limit:用来限制MongoDB聚合管道返回的文档数。
        • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
        • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
        • $group:将集合中的文档分组,可用于统计结果。
        • $sort:将输入文档排序后输出。
        • $geoNear:输出接近某一地理位置的有序文档。

        (14)node.js和mongodb

           <1>在app.js中设置

            

           <2>查询

              

           

            

          

  • 相关阅读:
    180602-nginx多域名配置
    180601-MySql性能监控工具MyTop
    180530-反射获取泛型类的实际参数
    180531-Spring中JavaConfig知识小结
    RabbitMQ基础教程之Spring&JavaConfig使用篇
    RabbitMQ基础教程之使用进阶篇
    RabbitMQ基础教程之基本使用篇
    jquery控制文字内容溢出用点点点(…)省略号表示
    用CSS设置Table的细边框的最好用的方法
    web app 自适应方案总结 弹性布局之rem
  • 原文地址:https://www.cnblogs.com/qzccl/p/6861290.html
Copyright © 2011-2022 走看看