最基本的前端就是HTML+CSS+Javascript。掌握这三项技术算是入门,但也只是入门而已。现在前端开发的定义远不止于此。前端小课堂(HTML/CSS/JS),本着提高技术水平,夯实基础知识的中心思想,开课(每周四)。使用命令操作MongoDB数据库数据库操作显示所有数据库showdbsswitchdatabaseuse。比如我们切换到admin数据库使用admin。如果数据库不存在,则创建该数据库。如果数据库存在,则切换到指定的数据库。显示当前操作的数据库db显示当前数据库下的所有表showcollections删除当前数据库,这个危险的命令不要学习db.dropDatabase()数据操作,因为没有表(集合)的概念,不需要字段一致性(文档)。所以我们直接愉快的操作数据就好了。操作命令是db..<>,比如我们查看用户表db.user.find()的记录。您还可以使用选项卡进行自动完成。插入操作注意事项:在MongoDB中,只有插入内容后才会创建集合!也就是说,创建了集合(数据表)之后,在真正创建集合之前,必须先插入一个文档(记录)。(创建命令db.createCollection(name,options)无所谓,当然如果需要自定义options,还是要用到)插入一个文档,主键重复会报错.db..insert(document)插入一个文档,如果主键重复则报错。(Newfor3.2+)db..insertOne(document)db.collection.insertOne(,{writeConcern:})参数说明:document:要写入的文档。writeConcern:写策略,默认1,表示写操作需要确认,0则不需要。插入多个文档,如果主键重复,会报错。(Newfor3.2+)db..insertMany([document1,document2])db.collection.insertMany(,{writeConcern:,ordered:})参数说明:document:to书面文件。writeConcern:写策略,默认1,表示写操作需要确认,0则不需要。ordered:指定是否按顺序写入,默认为true,按顺序写入。select查询操作查询文档db..find()db.collection.find(query,projection)参数说明:query:可选,使用查询操作符指定查询条件projection:可选,使用投影操作符指定返回键。查询时返回文档中的所有键值,省略该参数即可(默认省略)查询一个文档db..findOne()update更新更新集合db..update()db.collection.update(,,{upsert:,multi:,writeConcern:})参数说明:query:更新的查询条件,类似于后面sql语句条件中update查询的where.update:更新对象和一些更新操作符(如$、$inc...)等,也可以理解为在sql更新查询中设置后的upsert:可选,该参数表示如果没有更新record,是否插入objNew,true表示插入,默认为false,不插入。multi:可选,mongodb默认为false,只更新找到的第一条记录。如果该参数为真,则更新所有根据条件找到的多条记录。writeConcern:可选,抛出异常的级别。如果主键重复,则插入文档并更新。(类似于mysql中的insertAndUpdate)(3.2+obsolete)db..save(document)db.collection.save(,{writeConcern:})参数说明:document:文档数据。writeConcern:可选,抛出异常的级别。更多示例//仅更新第一条记录:db.col.update({"count":{$gt:1}},{$set:{"test2":"OK"}});//allUpdate:db.col.update({"count":{$gt:3}},{$set:{"test2":"OK"}},false,true);//只添加第一个item:db.col.update({"count":{$gt:4}},{$set:{"test5":"OK"}},true,false);//全部加入:db.col.update({"count":{$gt:5}},{$set:{"test5":"OK"}},true,true);//更新所有:db.col.update({"count":{$gt:15}},{$inc:{"count":1}},false,true);//只更新第一条记录:db.col.update({"count":{$gt:10}},{$inc:{"count":1}},false,false);delete删除操作(无用,或不好)deletecollection(删除所有记录)db..drop()删除documentdb..remove()db.collection.remove(,{justOne:,writeConcern:})参数说明:query:(可选)被删除文档的情况。justOne:(可选)如果设置为true或1,则只删除一个文档,如果不设置,或使用默认值false,则删除所有符合条件的文档。writeConcern:(可选)抛出异常的级别。删除文件(一个)db..deleteOne()删除文件(多个)db..deleteMany()whereconditiondb.col.find({"author":"www.lilnong.top"}).pretty()查询所有author=="www.lilnong.top"记录db.col.find({"author":/nong/}).pretty()模糊查询所有author包含Nong记录db.col.find({"likes":{$lt:50}}).pretty()查询所有likes<50db.col.find({"likes":{$lte:50}})的记录。pretty()查询所有likes<=50db.col.find({"likes":{$gt:50}}).pretty()查询所有likes>50db.col.find({"likes":{$gte:50}}).pretty()查询所有likes>=50的记录db.col.find({"likes":{$ne:50}}).pretty()查询所有likes的记录!=50db.col.find({"likes":{$eq:50}}).pretty()查询所有likes==50db.col.find({"author":"www.lilnong.top","likes":{$lt:50}}).pretty()查询所有author=="www.lilnong.top"&&likes<50的记录db.col.find({$or:[{"author":"www.lilnong.top"},{"likes":{$gt:50}}]}).pretty()查询所有author=="www.lilnong.top"或likes>50的记录分页(LimitandSkip)使用limit()方法读取指定数量的数据。使用skip()方法跳过指定数量的数据。db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)排序使用sort()方法排序,1为升序,-1为降序。db.COLLECTION_NAME.find().sort({links:1})表示链接字段按升序排序。使用NodeJS操作MongoDB数据库有两个常用的库,mongodb和mongoosemongodb是Node.js的官方MongoDB驱动程序。在mongodb-core之上为最终用户提供高级API。安装引入mongodbnpminstallmongodb--savevarMongoClient=require('mongodb')await,asynccallvarMongoClient=require('mongodb').MongoClient;//console.log(MongoClient)MongoClient.connect('mongodb://localhost:27017/sf-mongodb',{},asyncfunction(err,db){if(err)returnconsole.error(err)//console.log(db);vardbo=db.db('sf-mongodb');//vardata=awaitdbo.collection('user').find().toArray();//console.log(data)//查询历史数据//data=awaitfind2array(dbo,'user');//console.log(data)consoleFindResult(dbo)//清除历史数据awaitdbo.collection('user').deleteMany({})consoleFindResult(dbo)//批量插入C创建等待dbo.collection('user').insertMany([{author:'www.lilnong.top',operManyCount:1,operKey:'insertMany',time:newDate()},{author:'www.lilnong.top',operManyCount:2,operKey:'insertMany',time:newDate()}])consoleFindResult(dbo,'C-Many')//C创建awaitdbo.collectionforsingleinsertdataCURD('user').insertOne({author:'www.lilnong.top',operKey:'insertOne',time:newDate()})consoleFindResult(dbo,'C-One')//批量更新数据CURDUupdateawaitdbo.collection('user').updateMany({operKey:'insertMany'},{$set:{lastUpdateTime:newDate()}})consoleFindResult(dbo,'U-Many')//单个更新数据CURDU更新awaitdbo.collection('user').updateOne({operKey:'insertMany'},{$set:{lastUpdateTime:newDate()}})consoleFindResult(dbo,'U-One')//读取数据CURDR读取console.log('R',awaitdbo.collection('user').find().skip(1)。limit(1).toArray())//删除数据CURDDdeleteawaitdbo.collection('user').deleteOne({operKey:'insertMany'})consoleFindResult(dbo,'D-One')})asyncfunctionfind2array(dbo,collection){返回dbo.collection(collection).find().toArray();}asyncfunctionconsoleFindResult(dbo,key){vardata=awaitfind2array(dbo,'user');console.log(key,data.map(v=>JSON.stringify(v)))}回调方法调用原来的方式varMongoClient=require('mongodb').MongoClient;varurl="mongodb://localhost:27017/sf-mongodb";MongoClient.connect(url,{useNewUrlParser:true},function(err,db){if(err)throwerr;vardbo=db.db("sf-mongodb");dbo.collection('用户').insertOne({author:'www.lilnong.top',operKey:'insertOne',time:newDate()},function(err,res){if(err)throwerr;console.log("文档插入成功",res);});dbo.collection('用户').insertMany([{author:'www.lilnong.top',operManyCount:1,operKey:'insertMany',time:newDate()},{author:'www.lilnong.top',operManyCount:2,operKey:'insertMany',time:newDate()}],function(err,res){if(err)抛出错误;console.log("文件插入成功",res);});dbo.collection("user").find({}).toArray(function(err,result){//返回集合中的所有数据if(err)throwerr;console.log(result);});dbo.collection("user").updateOne({},{$set:{random:Math.random()}},function(err,res){if(err)throwerr;console.log("文档更新成功地”);});dbo.collection("user").deleteOne({},function(err,obj){if(err)throwerr;console.log("文件删除成功");});});MongooseMongoose提供了一个直接的、基于scheme结构定义你的数据模型。它具有开箱即用的内置数据验证、查询构造、业务逻辑挂钩等。感觉类似于一些ORM之类的。创建模型(model),Mongoose会自动查找复数形式的集合,以支持MongoDB的高级(rich)查询语法。您可以使用模型的find、findById、findOne和where静态方法来查询文档。想了解更多关于Queryapi的细节,你可以参考查询章节。安装和导入Mongoose安装:npminstallmongoose--saveimport:mongoose=require('mongoose')//Mongoose中的一切都以Schema开头。//每个模式将映射到一个MongoDB集合,并定义该集合中文档的组成。varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/sf-mongodb');varSchema=mongoose.Schema;varuserSchema=newSchema({作者:字符串,日期:{类型:日期,默认:Date.now}});varUser=mongoose.model('User',userSchema);constuser=newUser({author:'lilnong.1'});user.save().then(()=>console.log('init1','success'));//直接使用对象也是可以的constmongoose=require('mongoose');mongoose.connect('mongodb://localhost/sf-mongodb');constUser=mongoose.model('User',{author:String});constuser=newUser({author:'lilnong.2'});user.save().then(()=>console.log('init2','success'));CURDC保存constUser=mongoose.model('User',{author:String});constuser=newUser({author:'lilnong'});user.save().then(()=>console.log('init3','success'));U更新constUser=mongoose.model('User',{author:String});User.updateOne({author:'lilnong.2'},{author:'lilnong.3'}).then(console.log)R读取constUser=mongoose.model('User',{author:String});//查询全量数据User.find().then(console.log)//查询author=='lilnong.test'数据User.find({author:'lilnong.test'}).then(console.log)DDeleteconstUser=mongoose.model('User',{author:String});//删除所有User.remove({author:null}).然后(控制台。日志);微信公众号:前端linong参考前端培训目录,前端培训规划,前端培训计划mongoosejs