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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【转】Mongodb 学习笔记

發布時間:2023/12/10 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】Mongodb 学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mongo DB

  • NoSql簡介
  • MongoDB簡介
  • 在Windows平臺下安裝Mongo
  • Mongo DB官方文檔

MongoDB基本命令

  • MongoDB的默認安裝路徑為 C:\Program Files\MongoDB
  • 創建默認的數據庫存放路徑c:\data\db ,使用命令行把該路徑關聯到mongo上 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe --dbpath c:\data\db,執行成功后數據庫服務開啟并開始監聽

Mongo Shell

  • 運行 C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe 文件可以打開MongoDB Shell,它是一個自帶的交互式的JavaScript shell,用來對MongoDB進行操作和管理的交互式環境
  • help 命令可以顯示可使用的命令行

DB相關的操作

use tutorial

使用該命令會嘗試連接名字為tutorial的數據庫,如果不存在則創建。使用db.help()命令可以查看命令行幫助

show dbs

顯示數據庫的相關信息.

如果數據庫相關的名字里包含了空格等字符,也可以用下面的命令

db["dbname"].find() db.getCollection("dbname").find()

插入數據

通過下面的格式來添加數據:

db.restaurants.insert({"address" : {"street" : "2 Avenue","zipcode" : "10075","building" : "1480","coord" : [ -73.9557413, 40.7720266 ],},"borough" : "Manhattan","cuisine" : "Italian","grades" : [{"date" : ISODate("2014-10-01T00:00:00Z"),"grade" : "A","score" : 11},{"date" : ISODate("2014-01-16T00:00:00Z"),"grade" : "B","score" : 17}],"name" : "Vella","restaurant_id" : "41704620"} )

查找數據

如果想要查找所有的數據,則:

db.collectionname.find()

指定條件:

指定field條件進行篩選,使用如下格式:

{ <field1>: <value1>, <field2>: <value2>, ... }

具體的例子:

db.restaurants.find( { "borough": "Manhattan" } )

大于,小于條件的篩選

db.restaurants.find( { "grades.score": { $gt: 30 } } ) db.restaurants.find( { "grades.score": { $lt: 10 } } )

AND和OR

db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } ) db.restaurants.find( { $or: [ { "cuisine": "Italian" }, { "address.zipcode": "10075" } ] } )

排序

db.restaurants.find().sort( { "borough": 1, "address.zipcode": 1 } )

更新數據

下面的操作更新name為Juni的記錄,用set操作來更新cuisine字段。用set操作來更新cuisine字段。用currentDate 操作符來更新lastModified字段:

db.restaurants.update( { "name" : "Juni" }, {$set: { "cuisine": "American (New)" },$currentDate: { "lastModified": true } } )

更新內嵌的數據:

db.restaurants.update({ "restaurant_id" : "41156888" },{ $set: { "address.street": "East 31st Street" } } )

更新多條數據: 默認情況下update方法只更新一條數據。想要更新多條數據,使用multi option。

db.restaurants.update({ "address.zipcode": "10016", cuisine: "Other" },{$set: { cuisine: "Category To Be Determined" },$currentDate: { "lastModified": true }},{ multi: true} )

替換某條記錄 根據某個_id字段的信息,用新的記錄替換就得

db.restaurants.update({ "restaurant_id" : "41704620" },{"name" : "Vella 2","address" : {"coord" : [ -73.9557413, 40.7720266 ],"building" : "1480","street" : "2 Avenue","zipcode" : "10075"}} )

刪除某條記錄

刪除符合某個條件的所有記錄:

db.restaurants.remove( { "borough": "Manhattan" } )

只刪除符合某個條件的一條記錄,使用justOne選項:

db.restaurants.remove( { "borough": "Queens" }, { justOne: true } )

刪除所有的記錄:

db.restaurants.remove( { } )

刪除一個表:

db.restaurants.drop()

聚合運算

聚合并累加

用group來通過某個關鍵字進行分組,在group來通過某個關鍵字進行分組,在group中,指定需要分組的關鍵字為_id。group通過fieldpath訪問字段,字段名字需要以group通過fieldpath訪問字段,字段名字需要以為前綴。$sum表示累加器,下面的語句表示計算字段為borough的各種情況的個數。

db.restaurants.aggregate([{ $group: { "_id": "$borough", "count": { $sum: 1 } } }] );

輸出結果為:

{ "_id" : "Staten Island", "count" : 969 } { "_id" : "Brooklyn", "count" : 6086 } { "_id" : "Manhattan", "count" : 10259 } { "_id" : "Queens", "count" : 5656 } { "_id" : "Bronx", "count" : 2338 } { "_id" : "Missing", "count" : 51 }

聚合并過濾

使用 $match 來過濾記錄

db.restaurants.aggregate([{ $match: { "borough": "Queens", "cuisine": "Brazilian" } },{ $group: { "_id": "$address.zipcode" , "count": { $sum: 1 } } }] );

總結

以上是生活随笔為你收集整理的【转】Mongodb 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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