摘要:使用操作是基于开发的驱动,可以在异步的环境下执行。比如,启动,直接在终端输入就可以启动啦默认运行在。还可以自定义端口或者输入的使用首先新建一个名为的文件夹,该文件夹就是数据库目录。
使用Mongoose操作MongoDB
Mongoose是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。
关于在Mac下安装和使用MongoDB可以看我之前的一篇文章:
MongoDB PATH环境变量配置文章传送门:Mac下安装MongoDB 及使用教程
将mongodb添加到环境变量中:$ vim ~/.zshrc,添加如下命令行:
export PATH="$PATH:/usr/local/mongodb/bin"
当然前提是将解压出来的文件移到/usr/local/mongodb目录中。版本3.0.7
然后就可以在终端直接使用MongoDB命令,而不用每次都进入MongoDB所在文件夹的目录啦。
比如,启动MongoDB,直接在终端输入 $ mongo 就可以启动啦
默认运行在 http://127.0.0.1:27017 。
还可以自定义端口:$ mongod --dbpath=data/db --port=27017或者输入:$ mongo 127.0.0.1:27017
Mongoose的使用首先新建一个名为mongo的文件夹,该文件夹就是数据库目录。然后在该目录下安装mongoose:
$ npm install mongoose
在该目录下新建一个名为script.js的文件:
var mongoose = require("mongoose"); var uri = "mongodb://username:password@hostname:port/databasename"; uri = "mongodb://localhost/mongo"; mongoose.connect(uri); //在Schma里定义数据类型 var BookSchma = new mongoose.Schema({ //定义一个Schema name: String, author: String, publishTime:Date }); mongoose.model("Book",BookSchma);//将该Schema发布为Model
通过Model我们就可以创建、删除和修改mongodb里面的文档,MongoDB为我们提供了Schema,Schema则提供了数据类型和结构的定义。
然后在该目录下再新建一个名为insert.js的文件:
var mongoose = require("mongoose"); require("./script.js"); var Book = mongoose.model("Book");//Book为model name var book = new Book({ name: "MEAN Web Development", author: "trigkit4", publishTime: new Date() }); book.save(function (err) { console.log("save status:",err ? "failed" : "success"); });
打开终端,进入数据库目录(文件夹目录),输入$ node insert.js,不出意外应该可以看到:
save status: success
find查询操作,返回结果包含在数组里(单个的请使用findOne())
var mongoose = require("mongoose"); require("./script"); var Book = mongoose.model("Book"); /* find参数: 1.$or(array)和$and(array)
新建一个名为or.js的文件
var mongoose = require("mongoose"); require("./script"); var Book = mongoose.model("Book"); var condition ={ $or: [ {author: "trigkit4"}, {author: "Mike"} ] }; Book.find(condition, function (err, results) { if(err){ console.log("condition error",err); return; } console.log("condition",condition,"results",results); });
终端输入$ node or.js,不出意外应该能输出:
condition { "$or": [ { author: "trigkit4" }, { author: "Mike" } ] } results [ { __v: 0, publishTime: Fri Nov 27 2015 22:13:14 GMT+0800 (CST), author: "trigkit4", name: "MEAN Web Development", _id: 565864fae48504c03d92f319 } ]
关于Array
Array在JavaScript编程语言中并不是数组,而是集合,因此里面可以存入不同的值,以下代码等价:
var Schema1 = new Schema({array:[]}); var Schema2 = new Schema({array:Array}); var Schema3 = new Schema({array:[Schema.Types.Mixed]}); var Schema4 = new Schema({array:[{}]});在Express中使用Mongoose
首先先安装express-generator
$ npm install express-generator -g
安装好后,在终端执行:
$ express mongooseExpress
用来生成一个express实例。
然后我们在这个mongooseExpress文件夹下新建一个名为config的文件夹,然后在config下新建一个config.js文件:
module.exports = { mongodb: "mongodb://localhost/mongo" };
在再config文件夹下新建一个名为mongoose.js的文件:
var mongoose = require("mongoose"); var config = require("./config"); module.exports = function () { var db = mongoose.connect(config.mongodb);//连接数据库 return db;//返回数据库实例 };
然后我们再新建一个名为models的文件夹,然后新建一个名为user.server.model.js的文件:
var mongoose = require("mongoose"); var UserSchema = new mongoose.Schema({ uid: Number, username: String, createTime: Date, lastLogin: Date }); mongoose.model("user",UserSchema);
然后在刚才的mongoose.js中添加如下代码:
require("../models/user.server.model.js");
打开app.js,添加如下代码:
var mongoose = require("./config/mongoose"); var db = mongoose();使用Mongoose读取数据
首先打开routes文件夹下的users.js文件,添加如下代码:
var mongoose = require("mongoose"); var User = mongoose.model("User"); router.get("/test", function (req, res, next) { var user = new User({ uid: 123, username: "trigkit4" }); user.save(function (err) { if(err){ res.end("Error"); return next(); } //find({})意为返回所有文档 User.find({}, function (err, results) { if(err){ res.end("Error"); return next(); } res.json(results);//以json数据类型返回值 }) }) });
最后,打开终端,进入mongooseExpress目录,执行
$ npm install
将package.json的依赖安装好后,再执行:
$ npm install mongoose --save
在终端输入cat package.json,可以看到
{ "name": "mongooseExpress", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.13.2", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "express": "~4.13.1", "jade": "~1.11.0", "mongoose": "^4.2.8", "morgan": "~1.6.1", "serve-favicon": "~2.3.0" } }
可以看到"start": "node ./bin/www",因此,启动脚本需要在终端执行
$ node bin/www
然后打开另外一个窗口,输入:
curl localhost:3000/users/test
可以看到node bin/www那端的窗口显示GET / 200 28.562 ms - 170
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/18792.html
摘要:使用内在模块发送响应数据监听端口终端打印如下信息使用框架本项目使用的框架来起服务器。数据库中文档每一行的数据的数据结构和基本一样,所有存储在集合中的数据都是格式,是一种类的一种二进制形式的存储格式,简称。 前言 经过上一篇经济基础构建的完成,那么现在正式开始码代码吧! 项目架构 showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...
摘要:使用内在模块发送响应数据监听端口终端打印如下信息使用框架本项目使用的框架来起服务器。数据库中文档每一行的数据的数据结构和基本一样,所有存储在集合中的数据都是格式,是一种类的一种二进制形式的存储格式,简称。 前言 经过上一篇经济基础构建的完成,那么现在正式开始码代码吧! 项目架构 showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...
摘要:接下去完成与本机上数据库的连接,这是一个异步函数,当连接完成之后,触发执行其回调函数,参数指代这个数据库本身。同样是在完成数据库连接的回调函数当中对这个对象进行操作。当完成修改操作之后触发执行其回调函数,表示对修改结果的反馈。 一、node.js对于mongodb的基本操作 1、数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档。如D:mongo,接下去...
摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...
摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...
阅读 356·2023-04-25 16:38
阅读 1455·2021-09-26 09:46
阅读 3306·2021-09-08 09:35
阅读 2762·2019-08-30 12:54
阅读 3224·2019-08-29 17:06
阅读 966·2019-08-29 14:06
阅读 3322·2019-08-29 13:00
阅读 3433·2019-08-28 17:53