1. 程式人生 > >mongodb 高階修改操作

mongodb 高階修改操作

前面我們已經介紹了mongodb的基本操作:mongodb基本操作下面是介紹一些高階的增刪改查操作.

1.更新文件

文件替換

最簡單的方法就是文件完全替換,如下就是一個完全替換的例子,先把需要更新的文件找出來並且賦值,然後修改所賦的值,最後再進行update:> a1=db.test.findOne(){"_id":ObjectId("5738785d132e1e47e535a177"),"x":3.14,"y":5.5}> a1{"_id":ObjectId("5738785d132e1e47e535a177"),"x":3.14,"y":5.5}>delete a1.xtrue> a1{"_id":ObjectId
("5738785d132e1e47e535a177"),"y":5.5}
> a1.content={name:'job',age:11}{"name":"job","age":11}> a1{"_id":ObjectId("5738785d132e1e47e535a177"),"y":5.5,"content":{"name":"job","age":11}}> db.test.update({"_id":ObjectId("5738785d132e1e47e535a177")},a1)WriteResult({"nMatched":1,"nUpserted":0,"nModified"
:1})

使用修改器

通常文件只會有一部分需要更新,可以使用原子性的更新修改器對指定文件中的某些鍵進行更新

"$set"修改器

"$set"修改器用來指定一個欄位的值,如果這個欄位不存在則建立它,例如先給test表新增一個phone屬性:> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]"}>> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{
"$set":{phone:666}})
WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})>> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]","phone":666}然後用修改器再將phone該為888> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{"$set":{phone:888}})WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]","phone":888}使用"$set"修改器還可以修改欄位的屬性,例如可以把phone改成一個數組,還可以用"$unset"將鍵完全刪除:> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{"$unset":{phone:888}})WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]"}使用"$set"修改內嵌文件:> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]"}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":888,"address":"abc"}}>> db.test.update({"_id":ObjectId("57395fa85f74882a9bfa2d9f")},{"$set":{"id.phone":666}})WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})>> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]"}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":666,"address":"abc"}}

"$inc"增加和減少

"$inc"修改器用來增加和減少已有鍵的值,只能用於整形,長整形或者雙精度浮點型的值,用在其它型別的值上面會報錯.對於不存在的鍵,像"$set"那樣也會自動建立相應的鍵,並且值為給定的值例如我們用"$inc"修改器給age值+1,原來是30,現在變成了31> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]"}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":666,"address":"abc"}}> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{"$inc":{age:1}})WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":31,"email":"[email protected]"}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":666,"address":"abc"}}如果要減少,則將age:1裡的1改成-1

"$push"陣列修改器-新增元素

如果陣列已經存在,那麼"$push"會向已有的陣列末尾新增一個元素,如果沒有就建立一個新的陣列 ,下面這個例子會建立一個表示comments的陣列:> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]","phone":888}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":666,"address":"abc"}}> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{"$push":{comments:...{name:"jack",content:"good"}...}})WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})> db.test.find(){"_id":ObjectId("573957c55f74882a9bfa2d9e"),"name":"brent","age":30,"email":"[email protected]","phone":888,"comments":[{"name":"jack","content":"good"}]}{"_id":ObjectId("57395fa85f74882a9bfa2d9f"),"id":{"phone":666,"address":"abc"}}繼續給comments新增值:> db.test.update({"_id":ObjectId("573957c55f74882a9bfa2d9e")},{"$push":{comments:{name:"tom",content:"very good"}}})WriteResult({"nMatched":

相關推薦

mongodb 高階修改操作

前面我們已經介紹了mongodb的基本操作:mongodb基本操作下面是介紹一些高階的增刪改查操作.1.更新文件文件替換最簡單的方法就是文件完全替換,如下就是一個完全替換的例子,先把需要更新的文件找出來並且賦值,然後修改所賦的值,最後再進行update:> a1=db.

MongoDB高階操作(2)

查詢方法-常用查詢方法 查詢多條資料 -- db.集合名稱.find({條件文件}) 查詢一條資料 -- db.集合名稱.findOne({條件文件}) 結果格式化 --pretty()方法 -- db.集合名稱.find({條件文件}).pretty() 比較運算子 a

node.js使用mongodb進行刪除操作修改操作

刪除資料 //這個模組裡封裝了所有對資料庫的常用操作,不管資料庫的什麼操作,都需要連線資料庫 var MongoClient = require("mongodb").MongoClient; fun

mongodb高階操作(2)-查詢

1.查詢文件find介紹 mongodb中使用find來進行查詢.find的第一個引數決定了要返回哪些文件,這個引數是一個文件,用於指定查詢條件. 如果不指定條件預設就是{},那麼就是查詢所有文件. > db.test.find(){"_i

mongodb 高階查詢 高階操作 非常全

面向文件的 NoSQL 資料庫主要解決的問題不是高效能的併發讀寫,而是保證海量資料儲存 的同時,具有良好的查詢效能。 MongoDB 最大的特點是他支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語 言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,

mongoDB高階查詢和高階修改

db.c1.remove();    刪除c1集合中所有的資料 db.c1.remove("條件");    刪除c1集合中符合條件的所有的資料 修改資料把user3修改成user30: 若已經插入db.c1.insert({name:"user3",age:30}); { "_id" : ObjectId(

Python學習筆記——MongoDB高階操作

目錄 $sort $skip 安全 超級管理員 備份與恢復 備份 恢復 聚合 aggregate 聚合(aggregate)主要用於計算資料,類似sql中的sum()、avg() 語法 db.集合名稱.aggrega

55.Python修煉之路【60-MongoDB高階操作-聚合 aggregate】2018.06.13

聚合 aggregate聚合(aggregate)主要用於計算資料,類似sql中的sum()、avg()語法db.集合名稱.aggregate([{管道:{表示式}}]) 管道管道在Unix和Linux中一般用於將當前命令的輸出結果作為下一個命令的輸入ps ajx | gre

python資料庫-mongoDB高階查詢操作(55)

一、MongoDB索引   為什麼使用索引?   假設有一本書,你想看第六章第六節講的是什麼,你會怎麼做,一般人肯定去看目錄,找到這一節對應的頁數,然後翻到這一頁。這就是目錄索引,幫助讀者快速找到想要的章節。在資料庫中,我們也有索引,其目的當然和我們翻書一樣,能幫助我們提高查詢的效率。索引就像目錄一樣,減

MongoDb的基本操作快速入門

基本操作 mongodb mongodb增刪該查操作示例 mongodb快速入門 1.MongoDb簡介 mongodb是一個基於分布式存儲的開源數據庫系統又被稱為文檔數據庫,可以將數據存儲為一個文檔,數據結構有鍵值對(key=>value)對組成,存儲的文檔類似於JSON對象(BS

node.js零基礎詳細教程(7):node.js操作mongodb,及操作方法的封裝

font 裏的 ges 格式 上進 ins 方法 回調函數 方式 第七章 建議學習時間4小時 課程共10章 學習方式:詳細閱讀,並手動實現相關代碼 學習目標:此教程將教會大家 安裝Node、搭建服務器、express、mysql、mongodb、編寫後臺業務邏輯、編寫接口

@Modifying 註解完成修改操作

rem transacti runt ransac soft require spring base support 以上我們做的都是查詢,那要如何實現 修改、刪除和添加呢? 可以通過以下兩種方式: (1)通過實現 CrudRepository 接口來完成(以後介紹); (

mongodb的基本操作

hang 默認 數據庫名 capped img .so 全部 html 文檔 查詢所有的數據庫 show dbs 指定到一個數據庫/或者創建 use 數據庫名 指定儲存大小 db.createCollection("mycoll",{capped:true,size 10

MongoDBMongoDB的一些操作命令

更新 use 使用 查看 count 一個 對象 分頁 ins 我們首先應該知道MongoDB的數據結構:MongoDB:庫-->集合-->JSON對象 查看 show dbs //查看有哪些庫 show collections //查看庫中有哪些

數據庫數據的批量修改操作

let 數據庫 不能 count rom 數據導入 數據庫數據 執行 批量修改 如果有大量不同數據要進行修改可以執行一下SQL (此為Sql Server) 1.首先將要修改的數據導入數據庫然後進行如下操作 // 2.刪除要修改數據中的為空 和 為 null 的數據

Tomcat6.0常用修改操作匯總

rar processes set return writing cnblogs pac tle top 1.修改端口Tomcat默認端口為8080,如果需要同時啟動多個Tomcat服務,就需要修改新的Tomcat服務的端口以防止沖突:為了同時可以啟動更多的Tomcat服務

【網絡爬蟲入門05】分布式文件存儲數據庫MongoDB的基本操作與爬蟲應用

數據庫的操作 理解 src web 文件存儲 學習 json格式 關系型 log 【網絡爬蟲入門05】分布式文件存儲數據庫MongoDB的基本操作與爬蟲應用 廣東職業技術學院 歐浩源 1、引言 網絡爬蟲往往需要將大量的數據存儲到數據庫中,常用的有MySQL、Mon

MongoDB 之 幽靈操作避免

出現 等待 原因 依然 觸發 才會 job -s style 進行靜態加載數據到集合的過程中可能會出現。 假設建立一個任務(Job):在MongoDB中進行千條更新操作,開始後迅速終止任務,終止所有更新操作,但依然發現新的更新任務在不斷出現,即使任務已經停止。

Mongodb aggregation 基本操作示例

6.5 find 記錄 查詢條件 logs 字段值 pan 示例 統計 MongoDB二個主要的操作:一個是查詢,另一個是統計。對於查詢而言,主要是find()方法,再配合Filters組合多個查詢條件。 對於統計而言,則主要是aggregate操作,比如 group、su

.NET 對 XML 進行創建,增加,刪除,修改操作整理

res add post 做了 引用 nbsp order protected png 前言:   最近做了一個項目,程序A在一個服務器程序B在另一臺服務器,然而主程序A需要訪問程序B的圖片集文件夾下載到本服務器上,為了防止多次對Web Services進行調用,在主