一、在 Nodejs 中使用 Mongodb

在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库

Nodejs 操作 mongodb 数据库官方文档:https://www.mongodb.org.cn/drivers/5.html

npm install mongodb --save
或者
cnpm install mongodb --save
或者
yarn add mongodb

二、Nodejs 连接 MongoDb 数据库

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017'; // const url = 'mongodb://admin:123456@localhost:27017/'; 有密码连接方式
const dbName = 'itying';
const client = new MongoClient(url,{ useUnifiedTopology: true });
client.connect(function(err) { if(err){console.log(err); return; }console.log("连接成功"); //获取 db 对象 const db = client.db(dbName); });

注意:如果数据库开启了权限验证的话需要使用下面方式连接数据库
其中:admin 表示用户名,123456 表示密码

const url = 'mongodb://admin:123456@localhost:27017/';

三、Nodejs 查找 MongoDb 数据库的数据

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'itying';
const client = new MongoClient(url,{ useUnifiedTopology: true });
client.connect(function(err) { if(err){console.log(err); return; }const db = client.db(dbName); //获取 db 对象 db.collection("user").find({}).toArray(function(err,data){ //查找 if(err){console.log(err); return; }console.log(data); client.close(); })
});

四、Nodejs 给 MongoDb 增加数据

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'itying';
const client = new MongoClient(url,{ useUnifiedTopology: true });
client.connect(function(err) { if(err){console.log(err); return; }//获取 db 对象 const db = client.db(dbName); //新增数据 db.collection("user").insertOne({"username":"nodejs","age":10},(err,result)=>{ if(err){console.log(err); return; }console.log(result); client.close(); }) });

五、Nodejs 修改 MongoDb 数据

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017'; // const url = 'mongodb://admin:123456@localhost:27017/'; 有密码连接方式
const dbName = 'itying';
const client = new MongoClient(url,{ useUnifiedTopology: true });
client.connect(function(err) { if(err){console.log(err); return; }const db = client.db(dbName); //获取 db 对象 db.collection("user").updateOne({"name":"zhangsan"},{$set:{"age":50}},(err,result)=>{ if(err){console.log(err); return; }console.log(result); client.close(); })});

六、Nodejs 删除 MongoDb 数据

const {MongoClient,ObjectID} = require('mongodb');
const url = 'mongodb://localhost:27017';
const dbName = 'itying';
const client = new MongoClient(url,{ useUnifiedTopology: true });
client.connect(function(err) { if(err){console.log(err); return; }//获取 db 对象 const db = client.db(dbName); //删除数据 db.collection("user").deleteOne({ "username" : "nodejs" }, function(err, result) { if(err){ console.log(err); return; }console.log(result); client.close(); });
});

七、完整代码

/* 1.引入mongodb */
// const MongoClient = require('mongodb').MongoClient;
const { MongoClient } = require('mongodb');/* 2.定义数据库连接的地址 */
const url = 'mongodb://admin:admin@127.0.0.1:27017';/* 3.定义要操作的数据库 */
const dbName = 'itying';/* 4.实例化MongoClient 传入数据库连接地址 */
const client = new MongoClient(url, { useUnifiedTopology: true });/* 5.连接数据库 */
client.connect((err) => {if (err) {console.log('数据库连接失败!');return;}console.log('数据库连接成功');let db = client.db(dbName);/*  // 查找数据db.collection("user").find({ "age": 20 }).toArray((err, data) => {if (err) {console.log(err);return;}console.log(data);client.close();}) *//* // 增加数据db.collection("user").insertOne({ "name": "nodejs", "age": 10 }, (err, result) => {if (err) {console.log(err);return;}console.log("增加成功");console.log(result);// 6.操作数据库完毕以后一定要关闭数据库连接client.close();}) */// 修改数据/*  db.collection("user").updateOne({"name": "xiaoli"}, {$set:{"age": 100}}, (err, data)=> {if (err) {console.log(err);return;}console.log("修改成功");console.log(data);client.close();})*//* // 删除一条数据db.collection("user").deleteOne({"name": "nodejs"}, (err)=>{if (err) {console.log(err);return;}console.log("删除一条数据成功");client.close();}) */// 删除多条数据db.collection("user").deleteMany({"name": "nodejs"}, (err)=>{if (err) {console.log(err);return;}console.log("删除多条数据成功");client.close();})})

八、实战案例:

浏览器发送get请求 ,访问 /register,渲染出注册页面

浏览器发送post请求,访问 /doRegister, 后端获取前端提交的表单数据,然后将数据存入mongodb数据库中

浏览器发送get请求, 访问 / ,从mongodb数据库查询数据并渲染到前端页面上

app.js:

const http = require('http');
const querystring = require('querystring')
const app = require('./module/routes');
const ejs = require('ejs');
const { MongoClient } = require("mongodb");
const url = 'mongodb://admin:admin@127.0.0.1:27017';
const dbName = 'itying';/* 4.实例化MongoClient 传入数据库连接地址 */
// const client = new MongoClient(url, { useUnifiedTopology: true });// 注册web服务
http.createServer(app).listen(8081);
// app.static("public"); // 修改默认静态web目录
// 配置路由
app.get('/', function (req, res) {MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {/* 5.连接数据库 */client.connect((err) => {if (err) {console.log('数据库连接失败!');return;}console.log('数据库连接成功');let db = client.db(dbName);// 查找数据db.collection("user").find({}).toArray((err, result) => {if (err) {console.log(err);return;}console.log(result);client.close();ejs.renderFile("./views/index.ejs", {list: result}, (err, data) => {res.send(data);})})})})})app.get('/register', function (req, res) {ejs.renderFile("./views/register.ejs",{}, (err, data)=> {res.send(data);})
})app.post('/doRegister', function (req, res) {let body = querystring.parse(req.body)console.log(body)MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {if (err) {console.log('数据库连接失败!');return;}console.log('数据库连接成功');let db = client.db(dbName);db.collection("user").insertOne(body, (err, result)=> {if (err) {console.log(err);return;}console.log('添加数据成功');res.send('添加数据成功');})})
})console.log('Server running at http://127.0.0.1:8081/');

routes.js:

const url = require('url')
const path = require('path')
const fs = require('fs')// 扩展res
function changeRes(res) {res.send = (data) => {res.writeHead(200, { 'Content-Type': 'text/html;charset="utf-8"' });res.end(data);}
}// 根据后缀名获取文件类型
let getFileMime = function (extname) {// 把异步读取文件方法改为同步读取文件方法let data = fs.readFileSync('./data/mime.json');let mimeObj = JSON.parse(data.toString())console.log(mimeObj[extname])return mimeObj[extname]
}// 静态web服务的方法
function initStatic (req, res, staticPath){// 1. 获取地址console.log(req.url)let pathname = url.parse(req.url).pathname// 默认加载index.htmlif (pathname == '/') {pathname = '/index.html'} else {pathname = pathname}// 获取路径中的后缀名let extname = path.extname(pathname)// 2.通过fs模块读取文件try {// 把异步读取文件方法改为同步读取文件方法let data = fs.readFileSync('./' + staticPath + pathname);if (data) {let mine = getFileMime(extname)res.writeHead(200, { 'Content-Type': '' + mine + ';charset="utf-8"' });res.end(data);}} catch (error) {}
}let server = () => {let G = {_get: {}, // 把get 和 post分开保存_post: {},staticPath: "static"  // 静态资源web目录}let app = function (req, res) {// 扩展res的方法changeRes(res)// 配置静态web服务器initStatic(req, res, G.staticPath)// 路由let pathname = url.parse(req.url).pathname;// http://127.0.0.1:3000/login  pathname = /login// 获取请求类型let method = req.method.toLowerCase()if (G['_' + method][pathname]) {if (method == "get") {G['_' + method][pathname](req, res); // 表示执行方法} else {// post  获取post的数据  把它绑定到req.body上let postData = '';req.on('data', (chunk) => {postData += chunk;})req.on('end', () => {console.log(postData)req.body = postDataG._post[pathname](req, res); // 表示执行方法})}} else {res.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' });res.end('页面不存在');}}app.get = function (string, callback) {// 注册方法G._get[string] = callback/* G['/login'] = function(req, res) {res.send('hello world')}*/// console.log('get方法')}app.post = function (string, callback) {// 注册方法G._post[string] = callback}// 配置静态web服务目录app.static = function (staticPath){G.staticPath = staticPath}return app;}
module.exports = server()

mime.json:


{ ".323":"text/h323" ,".3gp":"video/3gpp" ,".aab":"application/x-authoware-bin" ,".aam":"application/x-authoware-map" ,".aas":"application/x-authoware-seg" ,".acx":"application/internet-property-stream" ,".ai":"application/postscript" ,".aif":"audio/x-aiff" ,".aifc":"audio/x-aiff" ,".aiff":"audio/x-aiff" ,".als":"audio/X-Alpha5" ,".amc":"application/x-mpeg" ,".ani":"application/octet-stream" ,".apk":"application/vnd.android.package-archive" ,".asc":"text/plain" ,".asd":"application/astound" ,".asf":"video/x-ms-asf" ,".asn":"application/astound" ,".asp":"application/x-asap" ,".asr":"video/x-ms-asf" ,".asx":"video/x-ms-asf" ,".au":"audio/basic" ,".avb":"application/octet-stream" ,".avi":"video/x-msvideo" ,".awb":"audio/amr-wb" ,".axs":"application/olescript" ,".bas":"text/plain" ,".bcpio":"application/x-bcpio" ,".bin ":"application/octet-stream" ,".bld":"application/bld" ,".bld2":"application/bld2" ,".bmp":"image/bmp" ,".bpk":"application/octet-stream" ,".bz2":"application/x-bzip2" ,".c":"text/plain" ,".cal":"image/x-cals" ,".cat":"application/vnd.ms-pkiseccat" ,".ccn":"application/x-cnc" ,".cco":"application/x-cocoa" ,".cdf":"application/x-cdf" ,".cer":"application/x-x509-ca-cert" ,".cgi":"magnus-internal/cgi" ,".chat":"application/x-chat" ,".class":"application/octet-stream" ,".clp":"application/x-msclip" ,".cmx":"image/x-cmx" ,".co":"application/x-cult3d-object" ,".cod":"image/cis-cod" ,".conf":"text/plain" ,".cpio":"application/x-cpio" ,".cpp":"text/plain" ,".cpt":"application/mac-compactpro" ,".crd":"application/x-mscardfile" ,".crl":"application/pkix-crl" ,".crt":"application/x-x509-ca-cert" ,".csh":"application/x-csh" ,".csm":"chemical/x-csml" ,".csml":"chemical/x-csml" ,".css":"text/css" ,".cur":"application/octet-stream" ,".dcm":"x-lml/x-evm" ,".dcr":"application/x-director" ,".dcx":"image/x-dcx" ,".der":"application/x-x509-ca-cert" ,".dhtml":"text/html" ,".dir":"application/x-director" ,".dll":"application/x-msdownload" ,".dmg":"application/octet-stream" ,".dms":"application/octet-stream" ,".doc":"application/msword" ,".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document" ,".dot":"application/msword" ,".dvi":"application/x-dvi" ,".dwf":"drawing/x-dwf" ,".dwg":"application/x-autocad" ,".dxf":"application/x-autocad" ,".dxr":"application/x-director" ,".ebk":"application/x-expandedbook" ,".emb":"chemical/x-embl-dl-nucleotide" ,".embl":"chemical/x-embl-dl-nucleotide" ,".eps":"application/postscript" ,".epub":"application/epub+zip" ,".eri":"image/x-eri" ,".es":"audio/echospeech" ,".esl":"audio/echospeech" ,".etc":"application/x-earthtime" ,".etx":"text/x-setext" ,".evm":"x-lml/x-evm" ,".evy":"application/envoy" ,".exe":"application/octet-stream" ,".fh4":"image/x-freehand" ,".fh5":"image/x-freehand" ,".fhc":"image/x-freehand" ,".fif":"application/fractals" ,".flr":"x-world/x-vrml" ,".flv":"flv-application/octet-stream" ,".fm":"application/x-maker" ,".fpx":"image/x-fpx" ,".fvi":"video/isivideo" ,".gau":"chemical/x-gaussian-input" ,".gca":"application/x-gca-compressed" ,".gdb":"x-lml/x-gdb" ,".gif":"image/gif" ,".gps":"application/x-gps" ,".gtar":"application/x-gtar" ,".gz":"application/x-gzip" ,".h":"text/plain" ,".hdf":"application/x-hdf" ,".hdm":"text/x-hdml" ,".hdml":"text/x-hdml" ,".hlp":"application/winhlp" ,".hqx":"application/mac-binhex40" ,".hta":"application/hta" ,".htc":"text/x-component" ,".htm":"text/html" ,".html":"text/html" ,".hts":"text/html" ,".htt":"text/webviewhtml" ,".ice":"x-conference/x-cooltalk" ,".ico":"image/x-icon" ,".ief":"image/ief" ,".ifm":"image/gif" ,".ifs":"image/ifs" ,".iii":"application/x-iphone" ,".imy":"audio/melody" ,".ins":"application/x-internet-signup" ,".ips":"application/x-ipscript" ,".ipx":"application/x-ipix" ,".isp":"application/x-internet-signup" ,".it":"audio/x-mod" ,".itz":"audio/x-mod" ,".ivr":"i-world/i-vrml" ,".j2k":"image/j2k" ,".jad":"text/vnd.sun.j2me.app-descriptor" ,".jam":"application/x-jam" ,".jar":"application/java-archive" ,".java":"text/plain" ,".jfif":"image/pipeg" ,".jnlp":"application/x-java-jnlp-file" ,".jpe":"image/jpeg" ,".jpeg":"image/jpeg" ,".jpg":"image/jpeg" ,".jpz":"image/jpeg" ,".js":"application/x-javascript" ,".jwc":"application/jwc" ,".kjx":"application/x-kjx" ,".lak":"x-lml/x-lak" ,".latex":"application/x-latex" ,".lcc":"application/fastman" ,".lcl":"application/x-digitalloca" ,".lcr":"application/x-digitalloca" ,".lgh":"application/lgh" ,".lha":"application/octet-stream" ,".lml":"x-lml/x-lml" ,".lmlpack":"x-lml/x-lmlpack" ,".log":"text/plain" ,".lsf":"video/x-la-asf" ,".lsx":"video/x-la-asf" ,".lzh":"application/octet-stream" ,".m13":"application/x-msmediaview" ,".m14":"application/x-msmediaview" ,".m15":"audio/x-mod" ,".m3u":"audio/x-mpegurl" ,".m3url":"audio/x-mpegurl" ,".m4a":"audio/mp4a-latm" ,".m4b":"audio/mp4a-latm" ,".m4p":"audio/mp4a-latm" ,".m4u":"video/vnd.mpegurl" ,".m4v":"video/x-m4v" ,".ma1":"audio/ma1" ,".ma2":"audio/ma2" ,".ma3":"audio/ma3" ,".ma5":"audio/ma5" ,".man":"application/x-troff-man" ,".map":"magnus-internal/imagemap" ,".mbd":"application/mbedlet" ,".mct":"application/x-mascot" ,".mdb":"application/x-msaccess" ,".mdz":"audio/x-mod" ,".me":"application/x-troff-me" ,".mel":"text/x-vmel" ,".mht":"message/rfc822" ,".mhtml":"message/rfc822" ,".mi":"application/x-mif" ,".mid":"audio/mid" ,".midi":"audio/midi" ,".mif":"application/x-mif" ,".mil":"image/x-cals" ,".mio":"audio/x-mio" ,".mmf":"application/x-skt-lbs" ,".mng":"video/x-mng" ,".mny":"application/x-msmoney" ,".moc":"application/x-mocha" ,".mocha":"application/x-mocha" ,".mod":"audio/x-mod" ,".mof":"application/x-yumekara" ,".mol":"chemical/x-mdl-molfile" ,".mop":"chemical/x-mopac-input" ,".mov":"video/quicktime" ,".movie":"video/x-sgi-movie" ,".mp2":"video/mpeg" ,".mp3":"audio/mpeg" ,".mp4":"video/mp4" ,".mpa":"video/mpeg" ,".mpc":"application/vnd.mpohun.certificate" ,".mpe":"video/mpeg" ,".mpeg":"video/mpeg" ,".mpg":"video/mpeg" ,".mpg4":"video/mp4" ,".mpga":"audio/mpeg" ,".mpn":"application/vnd.mophun.application" ,".mpp":"application/vnd.ms-project" ,".mps":"application/x-mapserver" ,".mpv2":"video/mpeg" ,".mrl":"text/x-mrml" ,".mrm":"application/x-mrm" ,".ms":"application/x-troff-ms" ,".msg":"application/vnd.ms-outlook" ,".mts":"application/metastream" ,".mtx":"application/metastream" ,".mtz":"application/metastream" ,".mvb":"application/x-msmediaview" ,".mzv":"application/metastream" ,".nar":"application/zip" ,".nbmp":"image/nbmp" ,".nc":"application/x-netcdf" ,".ndb":"x-lml/x-ndb" ,".ndwn":"application/ndwn" ,".nif":"application/x-nif" ,".nmz":"application/x-scream" ,".nokia-op-logo":"image/vnd.nok-oplogo-color" ,".npx":"application/x-netfpx" ,".nsnd":"audio/nsnd" ,".nva":"application/x-neva1" ,".nws":"message/rfc822" ,".oda":"application/oda" ,".ogg":"audio/ogg" ,".oom":"application/x-AtlasMate-Plugin" ,".p10":"application/pkcs10" ,".p12":"application/x-pkcs12" ,".p7b":"application/x-pkcs7-certificates" ,".p7c":"application/x-pkcs7-mime" ,".p7m":"application/x-pkcs7-mime" ,".p7r":"application/x-pkcs7-certreqresp" ,".p7s":"application/x-pkcs7-signature" ,".pac":"audio/x-pac" ,".pae":"audio/x-epac" ,".pan":"application/x-pan" ,".pbm":"image/x-portable-bitmap" ,".pcx":"image/x-pcx" ,".pda":"image/x-pda" ,".pdb":"chemical/x-pdb" ,".pdf":"application/pdf" ,".pfr":"application/font-tdpfr" ,".pfx":"application/x-pkcs12" ,".pgm":"image/x-portable-graymap" ,".pict":"image/x-pict" ,".pko":"application/ynd.ms-pkipko" ,".pm":"application/x-perl" ,".pma":"application/x-perfmon" ,".pmc":"application/x-perfmon" ,".pmd":"application/x-pmd" ,".pml":"application/x-perfmon" ,".pmr":"application/x-perfmon" ,".pmw":"application/x-perfmon" ,".png":"image/png" ,".pnm":"image/x-portable-anymap" ,".pnz":"image/png" ,".pot,":"application/vnd.ms-powerpoint" ,".ppm":"image/x-portable-pixmap" ,".pps":"application/vnd.ms-powerpoint" ,".ppt":"application/vnd.ms-powerpoint" ,".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation" ,".pqf":"application/x-cprplayer" ,".pqi":"application/cprplayer" ,".prc":"application/x-prc" ,".prf":"application/pics-rules" ,".prop":"text/plain" ,".proxy":"application/x-ns-proxy-autoconfig" ,".ps":"application/postscript" ,".ptlk":"application/listenup" ,".pub":"application/x-mspublisher" ,".pvx":"video/x-pv-pvx" ,".qcp":"audio/vnd.qcelp" ,".qt":"video/quicktime" ,".qti":"image/x-quicktime" ,".qtif":"image/x-quicktime" ,".r3t":"text/vnd.rn-realtext3d" ,".ra":"audio/x-pn-realaudio" ,".ram":"audio/x-pn-realaudio" ,".rar":"application/octet-stream" ,".ras":"image/x-cmu-raster" ,".rc":"text/plain" ,".rdf":"application/rdf+xml" ,".rf":"image/vnd.rn-realflash" ,".rgb":"image/x-rgb" ,".rlf":"application/x-richlink" ,".rm":"audio/x-pn-realaudio" ,".rmf":"audio/x-rmf" ,".rmi":"audio/mid" ,".rmm":"audio/x-pn-realaudio" ,".rmvb":"audio/x-pn-realaudio" ,".rnx":"application/vnd.rn-realplayer" ,".roff":"application/x-troff" ,".rp":"image/vnd.rn-realpix" ,".rpm":"audio/x-pn-realaudio-plugin" ,".rt":"text/vnd.rn-realtext" ,".rte":"x-lml/x-gps" ,".rtf":"application/rtf" ,".rtg":"application/metastream" ,".rtx":"text/richtext" ,".rv":"video/vnd.rn-realvideo" ,".rwc":"application/x-rogerwilco" ,".s3m":"audio/x-mod" ,".s3z":"audio/x-mod" ,".sca":"application/x-supercard" ,".scd":"application/x-msschedule" ,".sct":"text/scriptlet" ,".sdf":"application/e-score" ,".sea":"application/x-stuffit" ,".setpay":"application/set-payment-initiation" ,".setreg":"application/set-registration-initiation" ,".sgm":"text/x-sgml" ,".sgml":"text/x-sgml" ,".sh":"application/x-sh" ,".shar":"application/x-shar" ,".shtml":"magnus-internal/parsed-html" ,".shw":"application/presentations" ,".si6":"image/si6" ,".si7":"image/vnd.stiwap.sis" ,".si9":"image/vnd.lgtwap.sis" ,".sis":"application/vnd.symbian.install" ,".sit":"application/x-stuffit" ,".skd":"application/x-Koan" ,".skm":"application/x-Koan" ,".skp":"application/x-Koan" ,".skt":"application/x-Koan" ,".slc":"application/x-salsa" ,".smd":"audio/x-smd" ,".smi":"application/smil" ,".smil":"application/smil" ,".smp":"application/studiom" ,".smz":"audio/x-smd" ,".snd":"audio/basic" ,".spc":"application/x-pkcs7-certificates" ,".spl":"application/futuresplash" ,".spr":"application/x-sprite" ,".sprite":"application/x-sprite" ,".sdp":"application/sdp" ,".spt":"application/x-spt" ,".src":"application/x-wais-source" ,".sst":"application/vnd.ms-pkicertstore" ,".stk":"application/hyperstudio" ,".stl":"application/vnd.ms-pkistl" ,".stm":"text/html" ,".svg":"image/svg+xml" ,".sv4cpio":"application/x-sv4cpio" ,".sv4crc":"application/x-sv4crc" ,".svf":"image/vnd" ,".svg":"image/svg+xml" ,".svh":"image/svh" ,".svr":"x-world/x-svr" ,".swf":"application/x-shockwave-flash" ,".swfl":"application/x-shockwave-flash" ,".t":"application/x-troff" ,".tad":"application/octet-stream" ,".talk":"text/x-speech" ,".tar":"application/x-tar" ,".taz":"application/x-tar" ,".tbp":"application/x-timbuktu" ,".tbt":"application/x-timbuktu" ,".tcl":"application/x-tcl" ,".tex":"application/x-tex" ,".texi":"application/x-texinfo" ,".texinfo":"application/x-texinfo" ,".tgz":"application/x-compressed" ,".thm":"application/vnd.eri.thm" ,".tif":"image/tiff" ,".tiff":"image/tiff" ,".tki":"application/x-tkined" ,".tkined":"application/x-tkined" ,".toc":"application/toc" ,".toy":"image/toy" ,".tr":"application/x-troff" ,".trk":"x-lml/x-gps" ,".trm":"application/x-msterminal" ,".tsi":"audio/tsplayer" ,".tsp":"application/dsptype" ,".tsv":"text/tab-separated-values" ,".ttf":"application/octet-stream" ,".ttz":"application/t-time" ,".txt":"text/plain" ,".uls":"text/iuls" ,".ult":"audio/x-mod" ,".ustar":"application/x-ustar" ,".uu":"application/x-uuencode" ,".uue":"application/x-uuencode" ,".vcd":"application/x-cdlink" ,".vcf":"text/x-vcard" ,".vdo":"video/vdo" ,".vib":"audio/vib" ,".viv":"video/vivo" ,".vivo":"video/vivo" ,".vmd":"application/vocaltec-media-desc" ,".vmf":"application/vocaltec-media-file" ,".vmi":"application/x-dreamcast-vms-info" ,".vms":"application/x-dreamcast-vms" ,".vox":"audio/voxware" ,".vqe":"audio/x-twinvq-plugin" ,".vqf":"audio/x-twinvq" ,".vql":"audio/x-twinvq" ,".vre":"x-world/x-vream" ,".vrml":"x-world/x-vrml" ,".vrt":"x-world/x-vrt" ,".vrw":"x-world/x-vream" ,".vts":"workbook/formulaone" ,".wav":"audio/x-wav" ,".wax":"audio/x-ms-wax" ,".wbmp":"image/vnd.wap.wbmp" ,".wcm":"application/vnd.ms-works" ,".wdb":"application/vnd.ms-works" ,".web":"application/vnd.xara" ,".wi":"image/wavelet" ,".wis":"application/x-InstallShield" ,".wks":"application/vnd.ms-works" ,".wm":"video/x-ms-wm" ,".wma":"audio/x-ms-wma" ,".wmd":"application/x-ms-wmd" ,".wmf":"application/x-msmetafile" ,".wml":"text/vnd.wap.wml" ,".wmlc":"application/vnd.wap.wmlc" ,".wmls":"text/vnd.wap.wmlscript" ,".wmlsc":"application/vnd.wap.wmlscriptc" ,".wmlscript":"text/vnd.wap.wmlscript" ,".wmv":"audio/x-ms-wmv" ,".wmx":"video/x-ms-wmx" ,".wmz":"application/x-ms-wmz" ,".wpng":"image/x-up-wpng" ,".wps":"application/vnd.ms-works" ,".wpt":"x-lml/x-gps" ,".wri":"application/x-mswrite" ,".wrl":"x-world/x-vrml" ,".wrz":"x-world/x-vrml" ,".ws":"text/vnd.wap.wmlscript" ,".wsc":"application/vnd.wap.wmlscriptc" ,".wv":"video/wavelet" ,".wvx":"video/x-ms-wvx" ,".wxl":"application/x-wxl" ,".x-gzip":"application/x-gzip" ,".xaf":"x-world/x-vrml" ,".xar":"application/vnd.xara" ,".xbm":"image/x-xbitmap" ,".xdm":"application/x-xdma" ,".xdma":"application/x-xdma" ,".xdw":"application/vnd.fujixerox.docuworks" ,".xht":"application/xhtml+xml" ,".xhtm":"application/xhtml+xml" ,".xhtml":"application/xhtml+xml" ,".xla":"application/vnd.ms-excel" ,".xlc":"application/vnd.ms-excel" ,".xll":"application/x-excel" ,".xlm":"application/vnd.ms-excel" ,".xls":"application/vnd.ms-excel" ,".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ,".xlt":"application/vnd.ms-excel" ,".xlw":"application/vnd.ms-excel" ,".xm":"audio/x-mod" ,".xml":"text/plain",".xml":"application/xml",".xmz":"audio/x-mod" ,".xof":"x-world/x-vrml" ,".xpi":"application/x-xpinstall" ,".xpm":"image/x-xpixmap" ,".xsit":"text/xml" ,".xsl":"text/xml" ,".xul":"text/xul" ,".xwd":"image/x-xwindowdump" ,".xyz":"chemical/x-pdb" ,".yz1":"application/x-yz1" ,".z":"application/x-compress" ,".zac":"application/x-zaurus-zac" ,".zip":"application/zip" ,".json":"application/json"
}



Nodejs 操作 MongoDb 数据库相关推荐

  1. nodejs操作mongodb数据库(mongoose)

    准备 在上一篇的基础上,通过npm安装mongoose. 关于mongoose Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB n ...

  2. nodejs操作mongodb数据库

    安装mongoose npm install mongoose 连接数据库 var mongoose = require("mongoose");//27017mongodb默认端 ...

  3. 操作Mongodb数据库及性能测试

    文章目录 操作Mongodb数据库,性能测试 引入mongodb模板 开启mongodb数据库 连接mongodb数据库 插入一条数据 查询全部数据 测试性能 操作Mongodb数据库,性能测试 目标 ...

  4. node用mongodb还是mysql,Node 操作 mongoDB 数据库和 mySQL数据库

    下载安装 MongoDB image.png 直接点击下载就行了 image.png 安装 mongodb 一直点击下一步,知道这一步 image.png 选中自己选择想安装的目录路径(选择安装的目录 ...

  5. Python 操作 MongoDB 数据库!

    作者 |黄伟呢 来源 |数据分析与统计学之美 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 先来看看MySQL与MongoDB 概念区别 ...

  6. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  7. 用python向mongodb插入数据_Python操作MongoDB数据库(一)

    Python操作MongoDB数据库(一) 前言 干货文章继续出发!隔的时间有些久了哈,对 MongoDB 安装回顾的同学,可以看下windows环境 <初识 MongoDB 数据库>.这 ...

  8. PHP操作mongodb数据库操作类

    最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb ...

  9. Lua 操作 MongoDB 数据库实例

    最近有个工作是使用Nginx + Lua实现一个操作MongoDB数据库的API,主要实现其count和query功能.之前没有写过Lua,于是也就勉强着上手,在cloudwu的 lua-mongo ...

最新文章

  1. android6.0 主题,Android 6.0 DatePickerDialog主题
  2. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
  3. house price model
  4. 从大学生到职场人,一段深刻的思维认知升级补丁
  5. C#中字符串保留双引号
  6. java 防止url重复请求_Web项目如何防止客户端重复发送请求
  7. 省选专练[NOI2008]志愿者招募
  8. Altium AD20更改原理图栅格改为点栅格
  9. 从入门到入土:基于C语言采用SOCKET套接字实现TCP公开扫描程序Web服务器扫描程序|代码展示
  10. 机器学习算法基础7-计算范围内素数的五种算法
  11. Java基础(静态static)
  12. NGN学习笔记5——IMS技术
  13. DTU助力于智能配电房监控系统
  14. android安卓使用socketIO实现聊天室功能
  15. Python基于OpenCV的土壤裂缝分割系统[源码&部署教程]
  16. Linux的PS1美化
  17. Vue Cli脚手架安装与使用
  18. 科创板拟上市企业申联生物和传音控股已提交注册
  19. 年轻人如何提高职场视野
  20. npm --save-dev --save 的区别

热门文章

  1. html图片分四面切割播,CSS3切割轮播图
  2. oracle对查询结果求和_Oracle 闪回技术详解
  3. yarn 怎么查看有多个job在跑_flink on yarn 模式下提示yarn资源不足问题分析
  4. 通过__tablename__ = 'xxx' #定义表名
  5. beeline连接hiveserver2报错:User: root is not allowed to impersonate root
  6. 安装Hbase(分布式)遇到一些问题及解决方法
  7. 关于用VS写C程序运行时出现烫字以及乱码的问题的原因
  8. struct file 结构体
  9. bootstrap-daterangepicker插件运用
  10. vsphere平台windows虚拟机克隆的小插曲(无法登陆系统)