zoukankan      html  css  js  c++  java
  • Mongodb

    1、数据库的类型

      关系型数据库(SQL):MySQL  Oracel  DB2  sybase  msSQL(微软旗下的SQL Server)

      非关系型数据库(NoSQL):MongoDB

    2、MongoDB存的是json格式的数据

    info = [
            {'id':1,
            'name':'aa'
           },
            {'id':2,
            'name':'bb'
            },
         ]    

    3、MySQL 和 MongoDB 中的不同

    数据库类型          MySQL                MongoDB

    数据库              database                 db

    数据表            table                 collections

    数据行            row                   documents

    字段             column                     filed

    4、MongoDB 小操作

      show dbs  查看所有已经写入磁盘的数据库

      use + 数据库名  切换到当前数据库

      show tables  查看当前数据库中所有的表

      db  查看当前所使用的数据库

      MongoDB中如果没有数据,如果直接使用 use + 随便输入  都会提示已经切换到这个数据库,但是show dbs 的时候是没有的,因为这个只是单纯的在内存中创建的,而没有写入磁盘。

      

      ***使用不存在的对象即创建该对象

      

    5、MongoDB 的增、删、改、查

      增:

        db.表名.insert({})

        官方推荐:

          db.表名.insertOne({})

          db.表名.insertMany([{},{},{}])

      查:

        db.表名.find()  查询所有的

        db.表名.findOne()  查询单条数据

      改:

        db.表名.update({条件},{$set:{数据}})

        官方推荐:

          db.表名.updateOne({条件},{$set:{数据}})  更新一条数据

          db.表名.updateMany({条件},{$set:{数据}})  更新所有数据

      删:

        db.表名.remove({条件})

        官方推荐:

          db.表名.deleteOne({条件})  删除一条数据

          db.表名.deleteMany({条件})  删除符合条件的所有数据

      清楚collections:

          db.表名.drop()

    6、$关键字

      数学比符

        $gt  >

        $gte  >=

        $lt  <

        $lte  =<

        $eq  =

        :    =

    7、修改器

      {$set:{name:1}}  简单粗暴的修改,将所有的name修改成1

      {$unset{name:1}}  简单粗暴的删除字段

      db.user_info.updateOne({age:200},{$unset:{age:1}})

      $inc  引用增加

      $push : 它是用来对Array (list)数据类型进行 增加 新元素的,相当于我们大Python中 list.append() 方法

      做一个小例子 :首先我们要先对原有数据增加一个Array类型的field:

      使用update $set 的方法只能为Document中的第一条添加

      使用updateMany $set 的方法 可以为所有满足条件的 Document 添加 "test_list" , 注意我这里的条件为空 " {} " 就算是为空,也要写上"{}" 记住记住记住

      接下来我们就要队列表进行添加了: 将 "score" 为 100 的Document 中"test_list" 添加一个 6

      $push 是在 Array(list) 的尾端加入一个新的元素  {$push : {"test_list" : 6}}

      $pull : 有了$push 对Array类型进行增加,就一定有办法对其内部进行删减,$pull 就是指定删除Array中的某一个元素

    做一个例子: 把我们刚才$push进去的 6 删除掉

      问题来了,如果 Array 数据类型中 如果有 多个 6 怎么办呢?

      全部删掉了.....

      得出了一个结论,只要满足条件,就会将Array中所有满足条件的数据全部清除掉

      $pop : 指定删除Array中的第一个 或 最后一个 元素

      做个小例子: 删除"score" 等于 100 分  test_list 的最后一个元素

      怎么删除第一个呢?

      {$pop:{"test_list" : -1}}  -1 代表最前面, 1 代表最后边 (这和我们大Python正好相反) 记住哦

      $字符

      db.user_info.updateOne({hobby:6},{$set:{'hobby.$':'六'}})  # 将hobby为6的改成‘六’,"hobby.$"加引号就会看作一个整体,.$是是用来找到那个6数据的索引。

      object字典操作

      db.user_info.updateOne({name:"200wansui"},{$inc:{"info.tizhong":-5}})
      db.user_info.updateOne({name:"200wansui"},{$set:{"info.long":12.5}})

    8、limit skip  sort  

      limit

        db.user_info.find({}).limit(5)

        从当前位置选择5个数据

      skip 跳过

        db.user_info.find({}).skip(2)

        从0开始跳过2条数据到当前位置

      sort 排序

        db.user_info.find({}).sort({'id':-1}) 

        根据id进行排序,-1为正序    1为倒叙

      limit + skip + sort

        db.user_info.find({}).limit(5).skip(10)
        db.user_info.find({}).limit(c).skip((p-1)*c)

        db.user_info.find({}).limit(5).skip(5).sort({ id:-1 })

        优先级最高的是 sort
        其次优先为 skip
        最低优先级 limit

  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/wf123/p/10175536.html
Copyright © 2011-2022 走看看