mongodb基礎語法


Mongodb與關係型數據庫最大的區別就是無約束, 既無字段(外鍵等)約束, 也沒有數據類型約束, 以json存儲數據庫


安裝
  啓動Mongodb(默認在c盤找 data/db/文件夾)
  服務端:
    mongod --dbpath "指定數據庫目錄"
  默認端口 27017
  客戶端:
    mongo



經常使用命令:json

  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}})
spa

    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),強轉字符串在序列化ip

相關文章
相關標籤/搜索