1. 程式人生 > >MongoDB之增、刪、改、查及特殊修改器

MongoDB之增、刪、改、查及特殊修改器

use db 使用db資料庫

show dbs 檢視當前伺服器中寫在磁碟上的資料庫

show tables 檢視資料庫中的collection

db 檢視當前使用的資料庫

1.增刪改查:

增:

db.collection.insert({資料}) 自動生成 _id : ObjectId("")

官方推薦:
db.collection.insertOne({資料}) 插入一條資料
db.collection.insertMany([{資料},{資料}]) 插入多條資料

查:

  db.collection.find({查詢條件})

  db.collection.findOne({條件})

改:

 db.collection.update({條件},{$修改器:{資料}})

 官方推薦:

 db.collection.updateOne({條件},{$修改器:{資料}}) 更新一條資料

 db.collection.updateMany({條件},{$修改器:{資料}}) 更新多條資料  

刪:

 db.collection.remove({條件})  #刪除符合條件的資料

 官方推薦:
   db.collection.updateOne({條件},{$修改器:{資料}}) 更新一條資料
   db.collection.updateMany({條件},{$修改器:{資料}}) 更新所有資料

清除collection:

    db.collection.drop()

2.$關鍵字

 數學比較符: 

  $lt: 小於
  $lte: 小於等於
  $gt:大於
  $gte:大於等於
  $eq :等於

查詢關鍵字:

  $or db.collection.find({$or:[{id:1},{age:73}]})

  $in db.collection.find({age:{$in:[1,2,3,4]}}) #符合其中一個條件即可

  $all db.collection.find({hobby:{$all:[1,2,3,4]}}) #子集查詢

1.$修改器 :
  $set 簡單粗暴 {name:value} dict["name"]=value

  $unset 簡單粗暴的刪除欄位 {$unset:{name:1}} del dict["name"]
  db.user_info.updateOne({age:200},{$unset:{age:1}})

  $inc 引用增加
  db.user_info.updateMany({},{$inc:{age:1}})

  array操作(首先得有一個array)
  $push 在array中追加一個新的元素 [].append(item)
  db.user_info.updateOne({name:"200wansui"},{$push:{hobby:10}})

  $pull 在array中刪除一個的元素 [].remove(item) [].pop(-1)
  db.user_info.updateOne({name:"200wansui"},{$pull:{hobby:0}})

  $pop 不含索引 -1 從前往後 1 從後往前
  db.user_info.updateOne({name:"200wansui"},{$pop:{hobby:1}})

2.$ 字元
db.user_info.updateOne({hobby:6},{$set:{"hobby.$":"六"}})
儲存符合索引條件資料的下標

3.Object 字典操作
db.user_info.updateOne({name:"200wansui"},{$inc:{"info.tizhong":-5}})
db.user_info.updateOne({name:"200wansui"},{$set:{"info.long":12.5}})

4.array + Object
db.user_info.updateOne({"hobby.shengao":150},{$set:{"hobby.$.long":14}})

5.limit
db.user_info.find({}).limit(5)
選取資料從當前位置選擇5個

6.skip 跳過
db.user_info.find({}).skip(2)
從0開始跳過2條資料為當前位置

7.sort
db.user_info.find({}).sort({ id:-1 })
根據ID進行排序 -1倒敘 1正序

8.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