MongoDB是一个用C++编写的基于分布式文件存储的非关系型数据库(NoSQL),将数据存储为文档,数据结构由键值对(key=>value)组成,类似于JSON对象。与其他关系型数据库相比,MongoDB必须创建表和字段,否则不能使用,但mongodb属于“无状态模式”,不需要设计结构,数据库和集合会自动创建,使用即可直接把它存起来,存什么东西取决于我们传给他的东西(不存在就创建,不需要手动创建)。MongoDB在存储大量数据时,丢失率高,适合存储一些不太重要的信息。市面上的纽约时报、优酷视频等都在使用MongoDB。安装MongoDB以Windows10操作系统为例安装MongoDB。到官网https://www.mongodb.com/downl...下载客户端,这里是mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi。安装在C:ProgramFilesMongoDBServer3.2bin目录下。添加系统环境变量:ThisComputer=>Properties=>AdvancedSystemSettings=>EnvironmentVariables=>SystemVariables=>Path=>New=>C:ProgramFilesMongoDBServer3.2bin。在D盘创建mongodb-data文件夹。在C:ProgramFilesMongoDBServer3.2bin目录下运行$mongod--dbpathD:\mongodb-data。批处理:新建文件mongod批处理命令.bat,内容为mongod--dbpathD:mongodb-data或C:ProgramFilesMongoDBServer3.2binmongod--dbpathD:mongodb-data。点击运行。为MongoDB安装NoSQL管理器。https://www.mongodbmanager.co...下载免费版本并安装。MongoDB的API假设有一个数据库商店,里面有一个集合商品。$mongo$showdbs$useshop$db.goods.find()query$db.goods.findOne()查询一条数据$db.goods.find({"name":"XXX"})querynameisXXX所有数据$db.goods.find({"name":"XXX"},{"_id":0})查询结果不显示_id$db.goods.find({"name":/X/})查询名称包括X的数据$db.goods.find({"name":/m/},{"name":1}).limit(3)查询结果只显示3条数据$db.goodsofname。find({"price":{"$gte":25,"$lte":27})查询价格在25-27之间的数据$db.goods.find({"country":{"$ne":"China"}})查询国家不是中国的数据$db.goods.insert({"name":"XXX"})添加{"name":"XXX"}这条数据$db.googs.remove({/*查询条件*/})delete$db.goods.update({/*查询条件*/},{"$set":{"name":"newName"})update$db.goods.count({/*查询条件*/}其他查询条件{"country":{"$in":['China','USA']}country为数组之一,否则为$nin{"$or":[{"c":{"$gte":85}},{"e":{"$gte":90}}]}c>85或e>90{"color":{"$all":["red","black"]}}color有红色和黑色,都有{"name":{"$not":/li/i}name不存在li,$not可以任意反转{"books.1":"JS"}books是一个数组,第二项是JS{"area.province":"sc"}area是一个对象,属性province是sc{"books":{"$size":4}}books的长度是4备份和恢复Backupshop到D:data:$mongodump-h127.0.0.1:27017-dshop-oD:\dataRestoreshopfromD:data:mongorestore-h127.0.0.1:27017-dshopD:\data导入数据并开始新的命令行,不是在mongo里面$mongoimport--dbmydbs--collectionproduct--drop--filefile是导入json文件的路径(),注意--drop是先删除再导入,也可以不用-直接导入-降低Nodejs运行MongoDBconstMongoClient=require('mongodb').MongoClient;constexpress=require("express");constapp=express();constdbName="mongodb://localhost:27017";//mongodb默认端口是27017//connect-->insert,remove,update,find-->closeapp.get("/",(req,res)=>{MongoClient.connect(dbName,(err,db)=>{if(err){//err是一系列错误,db是nullconsole.log("connectionfailed");return;}//否则,err是null,db是一系列数据控制台。log("connectionissuccessful");//在mydata的bbs集合(表)中插入一条数据,如果bbs不存在则创建db.db("mydata").collection("bbs").insertOne({"name":"myfirst"},(err,result)=>{if(err){console.log("数据库写入失败");return;}console.log("插入成功");db.close();});});res.end();});app.listen(3000);带有参数的constMongoClient=require('mongodb').MongoClientconstexpress=require('express')constapp=express()constdbName='mongodb://localhost:27017'app.set('viewengine','ejs');app.get('/add',(req,res)=>{res.render('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('连接数据库成功');db.db('dnedu').collection('bbs').insertOne({name,age,sex},(err,result)=>{if(err)return;res.end();db.close();})})})app.listen(80);
名称:
年龄:
性别: