日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB操作

發布時間:2025/3/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀目錄

  • 創建、刪除數據庫
  • 插入文檔
  • 刪除文檔
  • 查詢文檔
  • 排序
  • 索引
  • 聚合
  • 復制
回到頂部

創建、刪除數據庫

格式

use DATABASE_NAME

如果不存在,則創建,否則直接切換到該數據庫

顯示當前所在的數據庫

db

顯示所有數據庫

show dbs

刪除數據庫

db.dropDatabase()

例子

> show dbs admin 0.078GB db_log 0.953GB local 0.078GB test 0.078GB > use del_db switched to db del_db > db.col.insert({x:123}) WriteResult({ "nInserted" : 1 }) > show dbs admin 0.078GB db_log 0.953GB del_db 0.078GB local 0.078GB test 0.078GB > db del_db > db.dropDatabase() { "dropped" : "del_db", "ok" : 1 } 回到頂部

插入文檔

文檔的數據結構和json基本一致

所有存儲在集合中都是BSON格式

BSON是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON

>db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 數據庫',by: '菜鳥教程',url: 'http://www.runoob.com',tags: ['mongodb', 'database', 'NoSQL'],likes: 100 }) 回到頂部

刪除文檔

語法

db.collection.remove(<query>,<justOne> )
  • query?:(可選)刪除的文檔的條件。
  • justOne?: (可選)如果設為 true 或 1,則只刪除一個文檔。

對比

  • 刪除集合中的所有文檔(保留集合):db.col.remove({})
  • 刪除集合:db.col.drop()

案例

> db.col.find() { "_id" : ObjectId("56c55cf5ca446fab71e4c382"), "x" : 1 } { "_id" : ObjectId("56c55cf6ca446fab71e4c383"), "x" : 1 } { "_id" : ObjectId("56c55cffca446fab71e4c384"), "x" : 1 }> db.col.remove({x:1}, 1) WriteResult({ "nRemoved" : 1 }) > db.col.find() { "_id" : ObjectId("56c55cf6ca446fab71e4c383"), "x" : 1 } { "_id" : ObjectId("56c55cffca446fab71e4c384"), "x" : 1 }> db.col.remove({x:1}) WriteResult({ "nRemoved" : 2 }) > db.col.find() 回到頂部

查詢文檔

讀取格式:db.COL_NAME.find()

以易讀的方式讀取:db.COL_NAME.find().pretty()

只讀一個文檔:db.COL_NAME.findOne()

AND條件

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

OR條件

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

條件查詢

案例:

x>1 & (y=3 or y = 4)

db.col.find( { x:{$gt:1},$or:[{y:3},{y:4}] } )

?$type操作符

$type操作符是基于BSON類型來檢索集合中匹配的數據類型,并返回結果

示例

> db.col.find() { "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : 2, "y" : 3 } { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 } { "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" } > db.col.find({x:{$type:2}}) { "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" } > db.col.find({x:{$type:1}}) { "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : 2, "y" : 3 } { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 }

limit(n)與skip(n)方法

limit顯示前n條文檔

skip調到第n條文檔開始顯示

示例

> db.col.find() { "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : 2, "y" : 3 } { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 } { "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" }> db.col.find().limit(2) { "_id" : ObjectId("56c562c1ca446fab71e4c387"), "x" : 2, "y" : 3 } { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 }> db.col.find().skip(1) { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 } { "_id" : ObjectId("56c568a8b708aa3d13c61cc6"), "x" : "aaa" }> db.col.find().skip(1).limit(1) { "_id" : ObjectId("56c562c8ca446fab71e4c388"), "x" : 3, "y" : 4 } 回到頂部

排序

格式:

db.COL_NAME.find().sort({KEY:1})

KEY對應的值:1(升序),-1(降序)

示例:

> db.col.find() { "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : 1, "y" : 3 } { "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : 2, "y" : 2 } { "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : 3, "y" : 1 }> db.col.find().sort({x:1}) { "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : 1, "y" : 3 } { "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : 2, "y" : 2 } { "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : 3, "y" : 1 }> db.col.find().sort({x:-1}) { "_id" : ObjectId("56c572c8ca446fab71e4c38c"), "x" : 3, "y" : 1 } { "_id" : ObjectId("56c572c2ca446fab71e4c38b"), "x" : 2, "y" : 2 } { "_id" : ObjectId("56c56dd4ca446fab71e4c38a"), "x" : 1, "y" : 3 } 回到頂部

索引

如果沒有索引,MongoDB讀取文件時,首先掃描整個文件從中找到符合條件的記錄。查詢效率巨低!

索引是特殊的數據結構,索引存儲在一個易于遍歷讀取的數據集合中,索引是對數據庫表中一列或多列的值進行排序的一種結構

語法格式

db.COLLECTION_NAME.ensureIndex({KEY:1})

KEY值是要創建的索引字段,1為指定按升序建索引,-1是指定按降序建索引。

> db.col.ensureIndex({y:1}) {"createdCollectionAutomatically" : false,"numIndexesBefore" : 2,"numIndexesAfter" : 3,"ok" : 1 } 回到頂部

聚合

聚合主要用來處理數據(如平均值、求和等),并返回計算后的數據結果

語法格式

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 回到頂部

復制

mongodb各個節點常見的搭配方式為:一主一從、一主多從。

主節點記錄在其上的所有操作oplog,從節點定期輪詢主節點獲取這些操作,然后對自己的數據副本執行這些操作,從而保證從節點的數據與主節點一致。

原理

副本集特征

  • N 個節點的集群
  • 任何節點可作為主節點
  • 所有寫入操作都在主節點上
  • 自動故障轉移
  • 自動恢復

?







本文轉自jihite博客園博客,原文鏈接:http://www.cnblogs.com/kaituorensheng/p/5198126.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的MongoDB操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。