摘要:是由編寫的基于分布式文件存儲的非關(guān)系型數(shù)據(jù)庫,將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值對組成,類似于對象。數(shù)據(jù)存儲量大時,丟失率較高,適合存儲一些不太重要的信息。安裝以操作系統(tǒng)為例,安裝。去官網(wǎng)下載客戶端,這里下載的是。
MongoDB是由 C++ 編寫的基于分布式文件存儲的非關(guān)系型數(shù)據(jù)庫(NoSQL),將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成,類似于 JSON 對象。MongoDB 與其他關(guān)系型數(shù)據(jù)庫相比,關(guān)系型數(shù)據(jù)庫必須創(chuàng)建表和字段,否則無法使用,但是mongodb屬于“無狀態(tài)模式”,結(jié)構(gòu)不需要設(shè)計,會自動創(chuàng)建數(shù)據(jù)庫和集合,直接使用即可,存什么東西取決于我們自己向他傳入什么(當(dāng)不存在則創(chuàng)建,不需要手動去創(chuàng)建)。MongoDB 數(shù)據(jù)存儲量大時,丟失率較高,適合存儲一些不太重要的信息。市面上用MongoDB的有紐約時報、優(yōu)酷視頻等。
安裝MongoDB以 Windows 10 操作系統(tǒng)為例,安裝MongoDB。
去官網(wǎng) https://www.mongodb.com/downl... 下載客戶端,這里下載的是 mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi 。
安裝在 C:Program FilesMongoDBServer3.2bin 目錄下。
添加系統(tǒng)環(huán)境變量:此電腦=>屬性=>高級系統(tǒng)設(shè)置=>環(huán)境變量=>系統(tǒng)變量=>Path=>新建=>C:Program FilesMongoDBServer3.2bin 。
在 D 盤創(chuàng)建 mongodb-data 文件夾。
在 C:Program FilesMongoDBServer3.2bin 目錄下運行 $ mongod --dbpath D:mongodb-data 。
批處理: 新建文件 mongod批處理命令.bat ,內(nèi)容為 mongod --dbpath D:mongodb-data 或為 C:Program FilesMongoDBServer3.2binmongod --dbpath D:mongodb-data 。點擊運行即可。
安裝 NoSQL Manager for MongoDB 。 https://www.mongodbmanager.co... 下載免費版安裝。
MongoDB的API假設(shè)存在數(shù)據(jù)庫 shop 有集合 goods。
$ mongo
$ show dbs
$ use shop
$ db.goods.find() 查詢
$ db.goods.findOne() 查詢一條數(shù)據(jù)
$ db.goods.find({"name": "XXX"}) 查詢name為XXX的所有數(shù)據(jù)
$ db.goods.find({"name": "XXX"},{"_id": 0}) 查詢結(jié)果不顯示 _id
$ db.goods.find({"name": /X/}) 查詢name包括X的數(shù)據(jù)
$ db.goods.find({"name":/米/},{"name":1}).limit(3) 查詢結(jié)果只顯示name的3條數(shù)據(jù)
$ db.goods.find({"price": {"$gte":25,"$lte":27}) 查詢price在25-27之間的數(shù)據(jù)
$ db.goods.find({"country":{"$ne": "China"}}) 查詢country不是China的數(shù)據(jù)
$ db.goods.insert({"name": "XXX"}) 增加{"name": "XXX"}這條數(shù)據(jù)
$ db.googs.remove({/* 查詢條件 */}) 刪除
$ db.goods.update({/* 查詢條件 */},{"$set": {"name": "newName"}) 更新
$ db.goods.count({/* 查詢條件 */}
{"country": {"$in": ["China", "USA"]} country是數(shù)組的某一個,相反就是$nin
{"$or":[{"c":{"$gte":85}},{"e":{"$gte":90}}]} c>85或者e>90
{"color":{"$all":["red","black"]}} color有red和black,兩者都有
{"name":{"$not":/li/i} name不存在li,$not 可以反正任何地方取反
{"books.1":"JS"} books是數(shù)組,第二項是JS
{"area.province":"sc"} area是對象,屬性province是sc
{"books":{"$size":4}} books的長度為4
把shop備份到D:data:$ mongodump -h 127.0.0.1:27017 -d shop -o D:data
從D:data還原shop: mongorestore -h 127.0.0.1:27017 -d shop D:data
另起命令行,不是在mongo里面 $ mongoimport --db mydbs --collection product --drop --file file是導(dǎo)入json文件的路徑(),注意--drop是先刪除后導(dǎo)入,也可以不用--drop不刪除直接導(dǎo)入。
Nodejs操作MongoDBconst MongoClient = require("mongodb").MongoClient; const express = require("express"); const app = express(); const dbName = "mongodb://localhost:27017"; // mongodb的默認(rèn)端口是27017 // connect --> insert、remove、update、find -->close app.get("/", (req, res) => { MongoClient.connect(dbName, (err, db) => { if (err) { // err為一串錯誤,db為null console.log("連接失敗"); return; } // 否則就是err為null,db為一串?dāng)?shù)據(jù) console.log("連接成功"); // 在mydata的bbs集合(表)中插入一條數(shù)據(jù),不存在bbs則創(chuàng)建 db.db("mydata").collection("bbs").insertOne({ "name": "myfirst" }, (err, result) => { if (err) { console.log("數(shù)據(jù)庫寫入失敗"); return; } console.log("成功插入"); db.close(); }); }); res.end(); }); app.listen(3000);
有參數(shù)的
const MongoClient = require("mongodb").MongoClient const express = require("express") const app = express() const dbName = "mongodb://localhost:27017" app.set("view engine", "ejs"); app.get("/add", (req,res)=>{ res.render("add"); // views目錄下的add.ejs }) app.get("/manage",(req,res)=>{ let {name, age, sex} = req.query; MongoClient.connect(dbName,(err,db)=>{ if(err)return; res.writeHead(200,{"Content-type": "text/html;charset=utf-8"}); res.write("連接數(shù)據(jù)庫成功"); db.db("dnedu").collection("bbs").insertOne({name,age,sex},(err,result)=>{ if(err)return; res.end(); db.close(); }) }) }) app.listen(80);
數(shù)據(jù)變化可在 NoSQL Manager for MongoDB 查看。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/19370.html
摘要:通過前面四篇的學(xué)習(xí),我們已經(jīng)在本地安裝了一個數(shù)據(jù)庫,并且通過一個簡單的應(yīng)用的單元測試,插入了幾條記錄到中,并通過查看到了插入的數(shù)據(jù)。讀操作最終將會使用我們在最簡單的入門教程之三使用代碼往里插入數(shù)據(jù)里介紹的方法,即通過注入的實例完成對的操作。 通過前面四篇的學(xué)習(xí),我們已經(jīng)在本地安裝了一個MongoDB數(shù)據(jù)庫,并且通過一個簡單的Spring boot應(yīng)用的單元測試,插入了幾條記錄到Mong...
摘要:通過前面四篇的學(xué)習(xí),我們已經(jīng)在本地安裝了一個數(shù)據(jù)庫,并且通過一個簡單的應(yīng)用的單元測試,插入了幾條記錄到中,并通過查看到了插入的數(shù)據(jù)。讀操作最終將會使用我們在最簡單的入門教程之三使用代碼往里插入數(shù)據(jù)里介紹的方法,即通過注入的實例完成對的操作。 通過前面四篇的學(xué)習(xí),我們已經(jīng)在本地安裝了一個MongoDB數(shù)據(jù)庫,并且通過一個簡單的Spring boot應(yīng)用的單元測試,插入了幾條記錄到Mong...
摘要:前兩篇教程我們介紹了如何搭建的本地環(huán)境最簡單的入門教程之一環(huán)境搭建以及如何用讀取里的記錄最簡單的入門教程之二使用訪問這篇教程我們會介紹如何使用代碼來連接。代碼如下和教程二相比,上述代碼的方法里還展示了如何用代碼給數(shù)據(jù)庫里增加記錄。 前兩篇教程我們介紹了如何搭建MongoDB的本地環(huán)境: MongoDB最簡單的入門教程之一 環(huán)境搭建 以及如何用nodejs讀取MongoDB里的記錄: M...
摘要:前兩篇教程我們介紹了如何搭建的本地環(huán)境最簡單的入門教程之一環(huán)境搭建以及如何用讀取里的記錄最簡單的入門教程之二使用訪問這篇教程我們會介紹如何使用代碼來連接。代碼如下和教程二相比,上述代碼的方法里還展示了如何用代碼給數(shù)據(jù)庫里增加記錄。 前兩篇教程我們介紹了如何搭建MongoDB的本地環(huán)境: MongoDB最簡單的入門教程之一 環(huán)境搭建 以及如何用nodejs讀取MongoDB里的記錄: M...
閱讀 3310·2023-04-25 19:42
閱讀 1329·2021-11-23 10:11
閱讀 2252·2021-11-16 11:51
閱讀 1590·2019-08-30 15:54
閱讀 2036·2019-08-29 18:44
閱讀 1609·2019-08-23 18:24
閱讀 494·2019-08-23 17:52
閱讀 1764·2019-08-23 15:33