摘要:上一篇提到為我們提供的客戶端管理工具是,可以用它操作數據庫,進行增刪改查。對比刪除集合中的所有文檔保留集合刪除集合數據更新方法用于更新已存在的文檔參數說明的查詢條件,類似查詢內后面的。可選,拋出異常的級別。
上一篇提到:mongodb 為我們提供的客戶端管理工具是mongo,可以用它操作數據庫,進行增刪改查(CRUD)。
現在我們如上一章那樣,啟動mongod,再啟動mongo
不記得的同學跟著截圖看一遍
創建、刪除數據庫use DATABASE_NAME
如果不存在,則創建,否則直接切換到該數據庫
顯示當前所在的數據庫
db
顯示所有數據庫
show dbs
刪除數據庫
db.dropDatabase()
MongoDB 創建數據庫 中文文檔
寫入數據(文檔)文檔的數據結構和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 })
上面我們提到js是可以使用在mongodb中的,我們再來看看其他示例:
刪除文檔db.collection.remove(, )
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()數據更新
update()
update() 方法用于更新已存在的文檔
db.collection.update(, , { upsert: , multi: , writeConcern: } )
參數說明:
query : update的查詢條件,類似sql update查詢內where后面的。
update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set后面的
upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,拋出異常的級別。
我們在集合 jx_collection中插入如下數據:
接著我們通過 update() 方法來更新標題(title):
更多實例只更新第一條記錄:
db.jx_collection.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:
db.jx_collection.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一條:
db.jx_collection.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加加進去:
db.jx_collection.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:
db.jx_collection.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一條記錄:
db.jx_collection.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );更多命令速查
save()
db.AddUser(username,password) 添加用戶 db.auth(usrename,password) 設置數據庫連接驗證 db.cloneDataBase(fromhost) 從目標服務器克隆一個數據庫 db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb,todb,fromhost) 復制數據庫fromdb---源數據庫名稱,todb---目標數據庫名稱,fromhost---源數據庫服務器地址 db.createCollection(name,{size:3333,capped:333,max:88888}) 創建一個數據集,相當于一個表 db.currentOp() 取消當前庫的當前操作 db.dropDataBase() 刪除當前數據庫 db.eval(func,args) run code server-side db.getCollection(cname) 取得一個數據集合,同用法:db["cname"] or db.getCollenctionNames() 取得所有數據集合的名稱列表 db.getLastError() 返回最后一個錯誤的提示消息 db.getLastErrorObj() 返回最后一個錯誤的對象 db.getMongo() 取得當前服務器的連接對象get the server db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair db.getName() 返回當操作數據庫的名稱 db.getPrevError() 返回上一個錯誤對象 db.getProfilingLevel() db.getReplicationInfo() 獲得重復的數據 db.getSisterDB(name) get the db at the same server as this onew db.killOp() 停止(殺死)在當前庫的當前操作 db.printCollectionStats() 返回當前庫的數據集狀態 db.printReplicationInfo() db.printSlaveReplicationInfo() db.printShardingStatus() 返回當前數據庫是否為共享數據庫 db.removeUser(username) 刪除用戶 db.repairDatabase() 修復當前數據庫 db.resetError() db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1} db.setProfilingLevel(level) 0=off,1=slow,2=all db.shutdownServer() 關閉當前服務程序 db.version() 返回當前程序的版本信息 db.test.find({id:10}) 返回test數據集ID=10的數據集 db.test.find({id:10}).count() 返回test數據集ID=10的數據總數 db.test.find({id:10}).limit(2) 返回test數據集ID=10的數據集從第二條開始的數據集 db.test.find({id:10}).skip(8) 返回test數據集ID=10的數據集從0到第八條的數據集 db.test.find({id:10}).limit(2).skip(8) 返回test數據集ID=1=的數據集從第二條到第八條的數據 db.test.find({id:10}).sort() 返回test數據集ID=10的排序數據集 db.test.findOne([query]) 返回符合條件的一條數據 db.test.getDB() 返回此數據集所屬的數據庫名稱 db.test.getIndexes() 返回些數據集的索引信息 db.test.group({key:...,initial:...,reduce:...[,cond:...]}) db.test.mapReduce(mayFunction,reduceFunction,導入集合) db.test.remove(query) 在數據集中刪除一條數據 db.test.renameCollection(newName) 重命名些數據集名稱 db.test.save(obj) 往數據集中插入一條數據 db.test.stats() 返回此數據集的狀態 db.test.storageSize() 返回此數據集的存儲大小 db.test.totalIndexSize() 返回此數據集的索引文件大小 db.test.totalSize() 返回些數據集的總大小 db.test.update(query,object[,upsert_bool]) 在此數據集中更新一條數據 db.test.validate() 驗證此數據集 db.test.getShardVersion() 返回數據集共享版本號
MongoDB:導入集合( mongoimport )
MongoDB地理索引初探
比如這里 我們有 neighborhoods.json 和 restaurants.json 兩個文件,導入test的數據庫中
linux命令:
mongorestore -d db_name 文件夾目錄 // mongorestore --host 127.0.0.1 --port 27017 -d db_name 文件夾目錄
windows命令:
mongorestore.exe -d db_name 文件夾目錄
Node.js 連接 MongoDB
nodejs 插入數據//插入數據 //http://www.runoob.com/nodejs/nodejs-mongodb.html var MongoClient = require("mongodb").MongoClient; var DB_CONN_STR = "mongodb://127.0.0.1:27017/test"; var insertData = function (db, callback) { //連接到表site var collection = db.collection("site"); //插入數據 var data = [{"name":"鏡心的小樹屋","url":"www.jxdxsw.com"},{"name":"segmentfault","url":"https://segmentfault.com"}]; collection.insert(data,function(err,result) { if(err) { console.log("Error:" + err); return } callback(result) }); } MongoClient.connect(DB_CONN_STR, function(err,db) { console.log("連接成功"); insertData(db,function(result) { console.log(result); db.close(); }); });
在test數據庫中創建site 集合
nodejs 查詢數據//查詢數據 //以下實例檢索 name 為 "鏡心的小樹屋" 的實例: var MongoClient = require("mongodb").MongoClient; var DB_CONN_STR = "mongodb://localhost:27017/test"; var selectData = function(db, callback) { //連接到表 var collection = db.collection("site"); // 查詢數據 var whereStr = {"name": "鏡心的小樹屋"}; collection.find(whereStr).toArray(function(err, result) { if(err) {console.log("err:" + err); return } callback(result) }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功"); selectData(db, function(result) { console.log(result); db.close(); }); });nodejs更新數據
//更新數據 //我們也可以對數據庫的數據進行修改,以下實例將 name 為 "鏡心的小樹屋" 的 url 改為 http:youlishu.com var MongoClient = require("mongodb").MongoClient; var DB_CONN_STR = "mongodb://localhost:27017/test"; var updateData = function(db, callback) { //連接到表 var collection = db.collection("site"); //更新數據 var whereStr = {"name":"鏡心的小樹屋"}; var updateStr = {$set: { "url" : "http:youlishu.com" }}; collection.update(whereStr,updateStr, function(err, result) { if(err) { console.log("Error:"+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); updateData(db, function(result) { console.log(result); db.close(); }); });nodejs刪除數據
//刪除數據 //以下實例將 name 為 "鏡心的小樹屋" 的數據刪除 : var MongoClient = require("mongodb").MongoClient; var DB_CONN_STR = "mongodb://localhost:27017/test"; var delData = function(db, callback) { //連接到表 var collection = db.collection("site"); //刪除數據 var whereStr = {"name":"鏡心的小樹屋"}; collection.remove(whereStr, function(err, result) { if(err) { console.log("Error:"+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); delData(db, function(result) { console.log(result); db.close(); }); });參考
MongoDB中文文檔
MongoDB操作
大家在mongodb上使用的GUI工具主要有那些?
MongoDB 生態 - 官方命令行工具
npm mongodb
CRUD 操作
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19079.html
摘要:聲明構造函數,作用是把從數據庫取出的數據實例化為對象。該構造函數傳入的值為從中取出的數據省略接口提供增刪改查接口實現提供增刪改查接口實現提供了一個類似于的設計的類。 本文快速入門,MongoDB 結合SpringBoot starter-data-mongodb 進行增刪改查 1、什么是MongoDB ? MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。...
摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。 前言 上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。 準備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...
摘要:前言上一篇中初階系列一用戶和權限介紹了用戶和權限,這一篇將介紹如何在中進行增刪改查。這是初階系列的第二篇,接下來還有第三篇,借助,更優雅地操作數據。 前言 上一篇中(mongoDB初階系列一:用戶和權限)介紹了用戶和權限,這一篇將介紹如何在node中進行增刪改查。 準備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...
摘要:啟動啟動服務輸入命令進入操作終端,需要新開窗口基礎語法查看當前所有的數據庫查看當前所有的數據庫新建數據庫創建的數據庫這個時候是看不到的,因為數據庫里沒有任何東西。查找集合所有信息班創建一個集合,并插入一條數據,數據里是帶有對象的。 1、啟動mongodb mongod -f /usr/local/etc/mongod.conf //啟動服務 mongo //輸入命令進入mongo操作...
摘要:項目地址寫在開頭本文主要分享我如何使用對實現增刪改查操作,感謝社區所有精品文章的幫助,以及的開源項目對我的啟發。我們這個項目是建立一個班級學生管理系統,能夠對學生的姓名及學號進行增刪改查的操作。 項目地址:https://github.com/jrainlau/mongoose_cru... 寫在開頭 本文主要分享我如何使用express+mongoose對mongodb實現增刪改查...
閱讀 3513·2021-11-17 17:01
閱讀 3919·2021-11-08 13:12
閱讀 2477·2021-10-08 10:04
閱讀 687·2021-09-29 09:35
閱讀 1418·2021-09-26 10:12
閱讀 2021·2021-09-07 09:58
閱讀 1953·2019-08-30 15:55
閱讀 2134·2019-08-30 13:14