国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - 使用MongoDB操作文檔

使用MongoDB操作文檔

2022-03-07 23:59.NET開發菜鳥 MongoDB

本文詳細講解了使用MongoDB操作文檔的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本篇文章中將講解如何使用MongoDB操作文檔。

文檔的數據結構和JSON基本一致,所有存儲在集合中的數據都是BSON格式。BSON是一種類似json格式的一種二進制形式的存儲格式,簡稱Binary JSON。

一、插入文檔

MongoDB使用insert()或save()方法向集合中插入文檔,語法如下:

db.COLLECTION_NAME.insert(document)

例如:以下文檔可以存儲在MongoDB的test數據庫的MongoDBTest集合中:

{"title" : "MongoDB", "description" : "mongoDB是一個NoSql數據庫", "tags" : "NoSql" }

1、使用insert()方法插入文檔

使用MongoDB操作文檔

在上面的例子中,MongoDBTest是我們的集合名,如果該集合不在該數據庫中,MongoDB會自動創建該集合并插入文檔。doc是定義的變量,可以以變量的形式插入集合。

查看已經插入的文檔:

> db.MongoDBTest.insert(doc)
WriteResult({ "nInserted" : 1 })
> db.MongoDBTest.find()
{ "_id" : ObjectId("5a6f13e72d0b37669c5d2a78"), "title" : "MongoDB", "description" : "mongoDB是一個NoSql數據庫", "tags" : "NoSql" }
>

2、使用save()方法插入文檔

插入文檔也可以使用save()方法。如果不知道_id字段save()方法類似于insert()方法。如果指定_id字段,則會更新該_id的數據。

下面的例子表示使用save()命令更新數據:

使用MongoDB操作文檔

二、查詢文檔

MongoDB查詢文檔使用find()方法。

find()方法以非結構化的方式來顯示所有文檔。

1、語法

MongoDB查詢數據的語法格式如下:

db.collection.find(query,projection)

參數說明:

  • query:可選參數,使用查詢操作符指定查詢條件。
  • projection:可選參數,使用投影操作符指定返回的鍵。如果查詢時要返回文檔中所有鍵值,只需省略該參數即可(默認省略)。

如果你需要格式化讀取的數據,可以使用pretty()方法,語法格式如下:

db.collection.find().pretty()

pretty()方法以格式化的方式來顯示所有文檔。

2、實例

例如:查詢Student集合中的所有文檔。

使用MongoDB操作文檔

除了find()方法之外,還有一個findOne()方法,它只返回一個文檔。

使用MongoDB操作文檔

MongoDB與RDBMS where語句比較

如果你熟悉常規的SQL數據,通過下表可以更好的理解MongoDB的條件語句查詢:

操作格式范例RDBMS中的類似語句
等于{<key>:<value>}db.Student.find({"name":"張三"}).pretty()where name='張三'
小于{<key>:{$lt:<value>}}db.Student.find({"score":{$lt:"80"}}).pretty()where score<80
小于或等于{<key>:{$lte:<value>}}db.Student.find({"score":{$lte:"80"}}).pretty()where score<=80
大于{<key>:{$gt:<value>}}db.Student.find({"score":{$gt:"80"}}).pretty()where score>80
大于或等于{<key>:{$gte:<value>}}db.Student.find({"score":{$gte:"80"}}).pretty()where score>=80
不等于{<key>:{$ne:<value>}}db.Student.find({"score":{$ne:"80"}}).pretty()where score!=80

(1)查詢name是張三的學生

db.Student.find({"name":"張三"}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

(2)查詢成績小于80的學生

db.Student.find({"score":{$lt:"80"}}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

(3)查詢成績小于等于80的學生

db.Student.find({"score":{$lte:"80"}}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

(4)查詢成績大于80分的學生

db.Student.find({"score":{$gt:"80"}}).pretty()

使用MongoDB操作文檔

(5)查詢成績大于等于80分的學生

db.Student.find({"score":{$gte:"80"}}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

(6)查詢成績不等于80分的學生

db.Student.find({"score":{$ne:"80"}}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

3、MongoDB AND條件查詢

MongoDB的find()方法可以傳入多個鍵(key),每個鍵(key)以逗號分隔開,等價于常規SQL的AND條件。

語法格式如下:

db.collection.find({key1:value1,key2:value2}).pretty()

例如:查詢姓名為張三并且課程是C#程序設計的學生信息。

db.Student.find({"name":"張三","subject":"C#程序設計"}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

以上實例中類似于RDBMS中的where語句:WHERE name='張三' AND subject='C#程序設計'。

4、MongoDB OR 條件查詢

MongoDB的OR條件語句使用了關鍵字$or,語法格式如下:

>db.collection.find(
  {
    $or:[
           {key1:value1},{key2:value2}
        ]
   }
)

例如:查詢姓名是李四或者成績等于80的學生

db.Student.find({$or:[{"name":"李四"},{"score":"80"}]}).pretty()

查詢結果如下圖所示:

使用MongoDB操作文檔

三、更新文檔

MongoDB使用update()和save()方法來更新集合中的文檔。接下來讓我們詳細來看下兩個方法的應用及其區別。

1、update()方法

update()方法用于更新已經存在的文檔。語法格式如下:

db.collection.update(
  <query>,
  <update>,
 {
   upsert:<boolean>,
   multi:<boolean>,
   writeConcern:<document>
  }
)

參數說明:

  • query:update的查詢條件,類似sql update查詢內where后面的條件。
  • update:update的對象和一些更新的操作符(如$set,Sinc......)等,也可以理解為sql update查詢內set后面的。
  • upsert:可選參數,這個參數的意思是:如果不存在update的記錄,是否插入新的文檔。如果為true則插入,默認是false不插入。
  • multi:可選參數,MongoDB默認是false,只更新找到的第一條記錄。如果這個參數為true,就把按條件查詢出來的多條記錄全部更新。
  • writeConcern:可選參數,拋出異常的級別。

writeConcern的幾種拋出異常的級別參數

  • writeConcern.NONE:沒有異常拋出。
  • writeConcern.NORMAL:僅拋出網絡錯誤異常,沒有服務器錯誤異常拋出。
  • writeConcern.SAFE:拋出網絡錯誤異常、服務器錯誤異常;并等待服務器完成寫操作。
  • writeConcern.MAJORITY:拋出網絡錯誤異常、服務器錯誤異常;并等待一個主服務器完成寫操作。
  • writeConcern.FSYNC_SAFE:拋出網絡錯誤異常、服務器錯誤異常;寫操作等待服務器將數據刷新到磁盤。
  • writeConcern.JOURNAL_SAFE:拋出網絡錯誤異常、服務器錯誤異常;寫操作等待服務器提交到磁盤的日志文件。
  • writeConcern.REPLICAS_SAFE:拋出網絡錯誤異常、服務器錯誤異常;等待至少2臺服務器完成寫操作。

例如:使用update()方法更新標題(title)

使用MongoDB操作文檔

上面的語句只會更新第一條查詢到的文檔,如果你要更新多條相同的文檔,則需要設置multi參數為true。

如果要更新的數據不存在,upsert參數設置為true則會插入數據。

使用MongoDB操作文檔

2、save()方法

save()方法通過傳入的文檔來替換已有文檔,語法格式如下:

db.collection.save(
  <document>,
  {
    writeConcern:<document>
  }
)

參數說明:

  • document:要更新的文檔數據。
  • writeConcern:可選參數,拋出異常的級別。

例如:更新_id=5a702a7f2c6ed8f4d3491831的文檔。

使用MongoDB操作文檔

四、刪除文檔

MongoDB使用remove()方法來移除集合中的數據。

注意:在執行remove()方法前先執行find()命令來判斷執行的條件是否正確,這是一個比較好的習慣。

remove()方法的基本語法格式如下:

db.collection.remove(
  <query>,
  <justOne>
)

如果MongoDB是2.6版本以后的,語法格式如下:

db.collection.remove(
  <query>,
  {
    justOne:<boolean>,
    writeConcern:<document>
   }
)

參數說明:

  • query:可選參數,刪除文檔的條件。
  • justOne:可選參數,如果設為true或1,則只刪除一個文檔。
  • writeConcern:可選參數,拋出異常的級別。

實例

1、刪除title為MongoDB教程的文檔,只刪除一個:

使用MongoDB操作文檔

2、刪除所有數據

如果想刪除所有數據,可以使用下面的例子

使用MongoDB操作文檔

到此這篇關于使用MongoDB操作文檔的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文地址:https://www.cnblogs.com/dotnet261010/p/8379464.html

延伸 · 閱讀

精彩推薦
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
主站蜘蛛池模板: 忘忧草av | 精精国产xxxx视频在线 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 久久伊人一区 | 午夜欧美精品久久久久 | 欧美视频网站 | 中文字幕,久热精品,视频在线 | a在线观看 | 国产片免费看 | 2023国产精品久久久精品双 | 亚洲天堂久久 | 午夜私人影院 | 国产黄视频在线观看 | 国产精品久久久久久久久 | 99久久国产露脸国语对白 | 欧美日韩一区二区在线观看 | 国产情侣91 | 日韩国产一区二区三区 | 免费国产一区 | 欧美日韩精品综合 | 国产精品123区 | 欧美电影网站 | 亚洲男人天堂网 | 国产成人av在线 | 国产免费自拍 | 亚洲欧美激情精品一区二区 | 午夜av毛片 | 欧美精品乱码久久久久久按摩 | 韩日av在线免费观看 | 国产精品亚洲第一区在线暖暖韩国 | 精品96久久久久久中文字幕无 | 操操操干干干 | 日韩在线免费观看视频 | 午夜激情视频在线观看 | 久久久嫩草 | 国产精品视频播放 | 欧美日韩久久久久 | 亚洲国产一二区 | 亚洲免费中文 | 国产一区二区综合 | 国产成年人电影在线观看 |