手机版

详细说明在Wondows下使用MongoDB的Node.js的环境配置

时间:2021-09-17 来源:互联网 编辑:宝哥软件园 浏览:

为了保存网站的用户数据和业务数据,通常需要一个数据库。MongoDB和Node.js特别匹配,因为MongoDB是一个基于文档的非关系数据库,文档是按照BSON(轻量级二进制格式BSON(JSON))存储的,管理数据库的命令,比如添加、删除、修改和检查都类似于JavaScript语法。如果你访问Node.js中的MongoDB数据,你会觉得我们是一家人,很亲切。

我还将使用MongoDB作为我的数据库。

MongoDB使用集合和文档来描述和存储数据。集合相当于表,而文档相当于行。但是,在MySQL等关系数据库中,表结构是固定的。例如,一行由几列组成,所有行都是相同的。MongoDB则不同,集合中的多个文档可以有不同的结构,更加灵活。

安装Mongo

详细指南在这里(MongoDB官方文档):https://docs . MongoDB . org/manual/tutorial/install-MongoDB-on-windows/。

在https://www.mongodb.org/downloads.下载安装包Windows系统是msi文件,我选择的是“Windows 64位2008 R2”版本。

安装非常简单,您可以默认或选择安装位置。我把它安装在G盘的MongoDB目录下。安装后目录结构如下:G:\MongoDB\Server\3.0\。

God、mongod等工具都在3.0目录下的bin目录下。

开始

要使用Mongodb,您需要指定一个文件夹来存储数据。我在G:\MongoDB下设置了一个名为DB的文件夹。

打开cmd,输入G:\MongoDB\Server\3.0\bin目录,执行“MongoDB路径=g3360 \ MongoDB \ db”,会启动MongoDB,如下图:

201631161833532.jpg  (672436)

MongoDB启动后,它将监听一个端口并等待客户端连接。从上图可以看出,默认监听端口为27017。您可以使用“-port”选项更改此端口,例如,命令“MongoDBport 28018dbpath=g : \ MongoDB \ db”将启动MongoDB并侦听端口28018。

随着mongoDB的启动,我们可以使用Mongo (Interactive shell)来管理数据库。直接在bin目录下执行mongo,可以看到下图:

201631161901110.jpg  (672333)

默认情况下,mongo Shell连接到测试数据库,并告诉我们可以输入帮助来查看帮助。您可以键入帮助,然后按enter键查看有哪些命令可用。

请注意,默认情况下mongod启动时没有身份验证。客户端连接后,可以随意操作,可以用来建立数据库、添加、删除、修改和检查。如果你想限制用户的权限,可以自己配置,这里我就直接往下说。

安装猫鼬驱动程序。

安装GIT工具:由于github网站不支持直接下载与所有子模块打包的源码包,所以需要通过git工具签出所有源码。从http://code.google.com/p/msysgit/downloads/list,可以下载Windows平台下msysgit的git客户端工具(最新版本文件为Git-1 . 7 . 7 . 1-preview 20111027 . exe)。下载后双击安装。

下载npm源代码:打开命令行工具(CMD),执行以下命令。你可以通过msysgit查看NPM的所有源代码和相关代码,并安装NPM。

git clone-recursive git ://github.com/Isaacs/NPM . git CD NPM node CLI . js installnpm-gf在执行此代码之前,请确保通过node.msi或在PATH环境变量中安装了node.msi。该命令还会将npm添加到PATH环境变量中,然后npm命令可以在任何地方执行。如果在安装过程中遇到权限错误,请确保cmd命令行工具以管理员身份运行。安装成功后,执行以下命令:

Npm安装得分回报:

[电子邮件受保护]。/node _ modules/下划线这样,Windows平台下的NPM就安装好了,然后我们就可以安装猫鼬了。

npinstallmongoose实例的一些基本操作和描述写在代码注释中:

//猫鼬链接var mongose=必选(' mongose ');var db=mongose。创建连接(' MongoDB ://127。0 .0 .1:27017/NodeJS’);//链接错误db.on('错误,函数(错误){ console.log(错误);});//架构结构var mongooseSchema=新猫鼬。架构({用户名: {类型:字符串,默认值: '匿名用户},标题: {类型:字符串},内容: {类型:字符串},时间: {键入:日期,默认值:日期. now},年龄: { type : Number } });//添加猫鼬实例方法mongoseschema。方法。findbyusername=function(username,callback){返回这个。模型(' mongose ')。find({username: username},回调);}//添加猫鼬静态方法,静态方法在模型层就能使用mongoseschema。静力学。findbytitle=函数(title,callback){返回这个。模型(' mongose ')。查找({title: title},回调);}//model var mongosemodel=db。model(' mongose ',mongoseschema);//增加记录基于实体操作var doc={ username : ' em tity _ demo _ username ',title : 'emtity_demo_title ',content : ' em tity _ demo _ content ' };var mongooseEntity=新mongooseModel(文档);mongooseEntity.save(函数(错误){ if(错误){ console.log(错误);} else { console.log('保存正常!');} //关闭数据库链接db。close();});//增加记录基于模型操作var doc={ username : ' model _ demo _ username ',title : 'model_demo_title ',content : ' model _ demo _ content ' };蒙古模特。创建(文档、函数(错误){ if(错误){ console.log(错误);} else { console.log('保存正常');} //关闭数据库链接db。close();});//修改记录mongooseModel.update(条件、更新、选项、回调);定义变量条件={ username : ' model _ demo _ username ' };var update={ $ set : { age : 27,title : ' model _ demo _ title _ update ' } };var options={ under : true };mongooseModel.update(条件、更新、选项、函数)(错误){ if(错误){ console.log(错误);} else { console.log('更新正常!');} //关闭数据库链接db。close();});//查询//基于实例方法的查询var mongooseEntity=new mongooseModel({ });蒙古实体。findbyusername(' model _ demo _ username ',函数(错误,结果){ if(错误){ console.log(错误);} else { console.log(结果);} //关闭数据库链接db。close();});//基于静态方法的查询蒙古模特。findbytitle(' em tity _ demo _ title ',函数(错误,结果){ if(错误){ console.log(错误);} else { console.log(结果);} //关闭数据库链接db。close();});//mongose find var criteria={ title : ' em tity _ demo _ title ' };//查询条件定义变量字段={title : 1,content : 1,time : 1 };//待返回的字段定义变量选项={ };mongooseModel.find(条件、字段、选项、函数(错误、结果){ if(错误){ console.log(错误);} else { console.log(结果);} //关闭数据库链接db。close();});//删除记录定义变量条件={ username : ' em tity _ demo _ username ' };mongooseModel.remove(条件、函数(错误){ if(错误){ console.log(错误);} else { console.log('删除好的。');} //关闭数据库链接db。close();});

版权声明:详细说明在Wondows下使用MongoDB的Node.js的环境配置是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。