zoukankan      html  css  js  c++  java
  • mongodb基础语法


    Mongodb与关系型数据库最大的区别就是无约束, 既无字段(外键等)约束, 也没有数据类型约束, 以json存储


    安装
      启动Mongodb(默认在c盘找 data/db/文件夹)
      服务端:
        mongod --dbpath "指定数据库目录"
      默认端口 27017
      客户端:
        mongo



    常用命令:

      show dbs
        查看所有存在磁盘上的数据库

      show tables
        查看当前数据库存在磁盘上的表(collections)

      use db
        创建(不存在这个名字) 或者 切换数据库

      db
        当前数据库

      db.user(表名)
        创建表


      增
         db.user.insertOne({"name": "Amber"})
        db.user.insertMany([{"name": "May"}, {"name": "Ryan"])


      删
        db.user.deleteOne({"name": "Amber"})
        db.user.deleteMany([{"name": "May"}, {"name": "Ryan"])


      改
        updata 需要结束一下修改器
        ({"条件"},{"关键字(修改器)":{"修改内容"}})

        $set 修改, 没有则添加一个字段
        db.user.updataOne({'name': 'Ryan'}, {$set: {'age': 18}})

        $unset 删除Field
        db.user.updataOne({'name': 'Ryan'}, {$unset: {'age': 1}})

        $inc 将查询到的某个结果,加上一个某个值
        db.user.updateOne({'name': 'Ryan'}, {$inc: {'age': -10}})


        array 修改器

        $push 在array(list)尾端添加一个新元素
          db.user.updateOne({'name': 'Ryan'}, {$push: {'hobby': '喝酒'}})

        $pull 删除某一个元素
          db.user.updateOne({'name': 'Ryan'}, {$pull: {'hobby': '做梦'}})

        $pop 删除 1是倒数第一个, -1 是正数第一个
          db.user.updateOne({'name': 'Ryan'}, {$pull: {'hobby': 1}})

        $pushAll
          db.user.updateOne({'name': 'Ryan'}, {$pushAll: {'hobby': ['爬山', , '游泳']}})


        $ 代指符 $存储符合条件的元素下标(索引)

          Array中的Object
              "hobby" : [
              "喝酒",
              {
                 "name" : "ball",
                 "price" : 100
              },
              "爬山",
              "游泳"
              如果要修改 ball 的价格 200
                  db.user.updateOne({'hobby.name': 'ball'}, {$set: {'hobby.$.price': 200}})

        Object中的Array
          {
            "info" : {
               "id" : 1,
               "name" : "Ryan",
               "age" : 73,
               "hobby" : [
                  "喝酒",
                  "爬山"
                  ]
                }
              }
          把喝酒改成游泳
             db.user.updataOne({'info.hobby': '喝酒'}, {$set: {'info.hobby.$': '游泳'}})


      查
        db.user.find({条件})

        且
          db.user.find({{"id":2,"age":18}})

        或
          db.user.find({$or: [{'age': {$gt: 18}}, {'name': 'May'}]})

        in
          db.user.find({'age': {$in: [10, 20, 30]}})




      sort, skip, limit:
        skip(5) 跳过五条数据
        limit(5) 只显示五条数据

        sort({age:1}) 升序
        sort({age:-1}) 降序

        如果三个关键字同时出现,优先级如下
        1.sort 2.skip 3.limit
          db.user.find().sort({'field': 1 or -1}).skip(n).limit(n)




    pymongo
      注意:
        '_id': ObjectId('5c3eddb16c347e190d0510cc' 是ObjectId类的对象
        如果要序列化,也先str(_id),强转字符串在序列化

  • 相关阅读:
    差分序列
    蓝桥杯 操作格子
    线段树
    历届题目 密文搜索
    对局匹配(动态规划)
    历届试题 分巧克力(二分查找)
    第九届蓝桥杯B组决赛 调手表(完全背包)
    快速幂求余
    2019蓝桥杯国赛备赛题库
    ubuntu16.04安装cuda8.0试错锦集
  • 原文地址:https://www.cnblogs.com/amber-liu/p/10279322.html
Copyright © 2011-2022 走看看