【转】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 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泰国报告1例疑似猫传人新冠病例:接触细节
- 下一篇: 第一次办信用卡怎么办