当前位置: 首页 > 后端技术 > Node.js

【佛经】-使用node操作mongodb

时间:2023-04-03 23:09:08 Node.js

佛经系列是一个粗略的总结,不求深究,只求会用。使用node操作mongodb首先假设你的电脑已经安装了mongodb。下面我们来看看如何使用nodeJS来操作mongodb。让那些使用nodeJS搭建服务的前端小白也可以使用简单的数据库。1.新建项目并安装mongodb在项目中新建项目并安装mongodbcnpminstallmongodb//ornpminstallmongodb//oryarnaddmongodb2.连接数据库假设大家的node入口都是index.js。数据库的每一个操作都要遵循:连接数据库,操作数据库,关闭数据库(断开连接),我们先使用mongodb模块创建连接,console输出连接成功就说明操作正确.varMongoClient=require('mongodb').MongoClient;varurl="mongodb://localhost:27017/";MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;console.log("connectedsuccessfully");db.close();//关闭数据库});3、操作数据库mongodb数据库的结构如下:database-collection-data。1.创建数据库先说创建数据库。Mongodb不同于mysql。当访问的数据库不存在时,会自动生成。MongoClient.connect(url,{useNewUrlParser:true},function(err,db){//连接成功后db为数据库实例if(err)throwerr;//使用db(数据库名)操作数据库,如果不存在则创建vardbo=db.db("testDB");console.log("数据库testDB创建成功");db.close();});2.创建集合使用数据库实例的createCollection()方法创建一个集合。createCollection的第一个参数是集合名,第二个参数是返回操作信息的函数。MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;console.log('数据库创建');vardbase=db.db("testDB");//用db(数据库名)获取数据库实例后,使用createCollection创建集合dbase.createCollection('site',function(err,res){if(err)throwerr;console.log("Createacollection!");分贝.close();});});3.删除集合使用drop()方法删除集合:MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");//删除测试集合dbo.collection("test").drop(function(err,delOK){//delOK执行成功返回true,否则返回falseif(err)throwerr;if(delOK)console.log("收藏已被删除");db.close();});});4.插入数据使用collection()访问集合,然后使用insertOne插入数据。插入多条信息可以使用insertMany():MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varmyobj={name:"菜鸟教程",url:"www.testDB"};dbo.collection("site").insertOne(myobj,function(err,res){//第二个参数是一个函数,returnoperationMessageif(err)throwerr;console.log("文档插入成功");db.close();});});//插入多条信息,可以使用insertMany():MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varmyobj=[{name:'NoobTool',url:'https://c.testDB.com',type:'cn'},{name:'Google',url:'https://www.google.com',type:'en'},{名称:'Facebook',网址:'https://www.google.com',类型:'en'}];dbo.collection("site").insertMany(myobj,function(err,res){if(err)throwerr;console.log("插入的文档数为:"+res.insertedCount);数据库关闭();});});5.查询数据使用find查询集合实例上的数据MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varwhereStr={"name":'张三'};//查询条件dbo.collection("site").find(whereStr).toArray(function(err,result){if(err)throwerr;console.log(result);db.close();});});//如果查询所有数据,则不需要传条件MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");dbo.collection("site").find({}).toArray(function(err,result){//返回集合中的所有数据if(err)throwerr;console.log(result);db.close();});});6、更新(修改)数据采集实例使用updateOne修改数据,下面的例子将名字“张三”的年龄修改为23:MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varwhereStr={"name":'张三'};//查询条件varupdateStr={$set:{"age":"23"}};dbo.collection("site").updateOne(whereStr,updateStr,function(err,res){如果(错误)抛出错误;console.log("文件更新成功");数据库关闭();});});//同理,如果要修改多条数据,必须用updateMany();MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varwhereStr={"type":'en'};//查询条件varupdateStr={$set:{"url":"https://www.testDB.com"}};dbo.collection("site").updateMany(whereStr,updateStr,function(err,res){if(err)throwerr;console.log(res.result.nModified+"文档已更新");db.close();});});7.删除数据和更新是一样的。如果要准确操作很多数据修改,首先要通过findMongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varwhereStr={"name":'张三'};//查询条件dbo.collection("site").deleteOne(whereStr,function(err,obj){if(err)throwerr;console.log("Documentdeletedsuccessfully");db.close();});});//如果要删除多条语句,可以使用deleteMany()方法8.排序使用sort()方法,它接受指定升序(1)或降序(-1)的参数MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");varmysort={type:1};dbo.collection("site").find().sort(mysort).toArray(function(err,result){if(err)throwerr;console.log(result);db.close();});});9、分页使用limit来过滤你想要多少条数据,使用skip选择跳过多少条数据MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throw错误;vardbo=db.db("testDB");dbo.collection("site").find().limit(2).toArray(function(err,result){if(err)throwerr;console.log(result);db.close();});});MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("testDB");dbo.collection("site").find().skip(2).limit(2).toArray(function(err,result){if(err)throwerr;console.log(result)};db.close();});});本文参考文章地址