Nodejs学习笔记(二)--- 操作MongoDB数据库

最近看了一些关于mongodb的文章,然后就想知道nodeJS是怎么连接的所以我就尝试去了解了一波(这个菜鸟驿站这个网站还不错,虽然知识文档不是最新的,但是还是蛮好的;

  顺便官网地址是这个哦:http://mongoosejs.com/docs/guide.html

好了,让我们来进入今天的主题:

 首先来进入你项目的根目录下安装: npm install  mongoose

一直想用下这个数据的,最近终于得偿所愿。数据库的使用,我觉得首先是从增删改查开始,然后才去像更加复杂的地步去卖家首先如何去获取他的连接创建db.js , 可以直接通过node db.js 命名去观察连接的效果一 建立连接
var mongoose = require(‘mongoose‘),
DB_URL = ‘mongodb://127.0.0.1:27017/Test‘;

// 连接
mongoose.connect(DB_URL);

// 测试连接是否成功
mongoose.connection.on(‘connected‘, function () {
  console.log(‘my mongodb connection success !!!‘)
})

// 连接异常的情况
mongoose.connection.on(‘error‘, function (er) {
  console.log(‘connection error: ‘ + er);
})

// 连接断开
mongoose.connection.on(‘disconnected‘, function () {
  console.log(‘mongogdb disconnection‘)
})

module.exports = mongoose;
二: 创建数据模型创建Schema ( 有点类似创建实例属性) 并建立Model
// 获取连接
var mongoose = require(‘./db.js‘),
  Schema = mongoose.Schema;

// 创建用户
var userInfo = new Schema({
  uid: {type: String},
  uname: {type: String},
  upwd: {type: String},
  loginDate: {type: Date}
})

// 将定义好的schema 转换为model
module.exports = mongoose.model(‘userInfo‘, userInfo);

三 对数据库操作 

3.1 插入操作:

var User = require(‘./userInfo.js‘)

/*
 插入操作
 */

function insert() {
  var userInfo = new User({
    uid: ‘1‘,
    uname: ‘yaobo1‘,
    upwd: ‘123‘,
    loginDate: new Date()
  })

  userInfo.save(function (err, res) {
    if(err) {
      console.log(‘err‘ + err);
    } else {
      console.log(‘res:‘ + res)
    }
  })
}
insert();

3.2 查询操作:

  这里在做模糊查询的时候是使用正则表达式来判断的

  引用:

$regex操作符的使用

$regex操作符中的option选项可以改变正则匹配的默认行为,它包括i, m, x以及S四个选项,其含义如下

  • i 忽略大小写,{<field>{$regex/pattern/i}},设置i选项后,模式中的字母会进行大小写不敏感匹配。
  • m 多行匹配模式,{<field>{$regex/pattern/,$options:‘m‘},m选项会更改^和$元字符的默认行为,分别使用与行的开头和结尾匹配,而不是与输入字符串的开头和结尾匹配。
  • x 忽略非转义的空白字符,{<field>:{$regex:/pattern/,$options:‘m‘},设置x选项后,正则表达式中的非转义的空白字符将被忽略,同时井号(#)被解释为注释的开头注,只能显式位于option选项中。
  • s 单行匹配模式{<field>:{$regex:/pattern/,$options:‘s‘},设置s选项后,会改变模式中的点号(.)元字符的默认行为,它会匹配所有字符,包括换行符(\n),只能显式位于option选项中。

使用$regex操作符时,需要注意下面几个问题:

  • i,m,x,s可以组合使用,例如:{name:{$regex:/j*k/,$options:"si"}}
  • 在设置索弓}的字段上进行正则匹配可以提高查询速度,而且当正则表达式使用的是前缀表达式时,查询速度会进一步提高,例如:{name:{$regex: /^joe/}

var User = require(‘./userInfo.js‘)

/*
   查询操作
 */

function find() {
  let wherestr = {uid: ‘1‘}

  User.find(wherestr, function (err, res) {
    if(err) {
      console.log(‘err‘ + err);
    } else {
      console.log(‘res:‘ + res)
    }
  })
}

/*
  模糊查询
 */

function getRegex(){
  var wherestr = {uname: {$regex: /yaobo/m}}
  console.log(wherestr);
  User.find(wherestr, function (err, res) {
    if(err) {
      console.log(‘err‘ + err);
    } else {
      console.log(‘res:‘ + res)
    }
  })
}

/*
  聚合查询
 */

function aggregate(){
  var wherestr = [{$group: {_id: ‘$uname‘, num: {$sum: 1}}}]
  console.log(wherestr);
  User.aggregate(wherestr, function (err, res) {
    if(err) {
      console.log(‘err‘ + err);
    } else {
      console.log(‘res:‘ + JSON.stringify(res))
    }
  })
}

//find();

// http://blog.csdn.net/u022812849/article/details/51314810

// getRegex();

aggregate();

3.3 删除操作

var User = require(‘./userInfo.js‘)

function remove() {
  let wherestr = {uid: ‘1‘}

  User.remove(wherestr, function (er, res) {
    if (er) {
      console.log(‘er:‘, er)
    }
    if (res) {
      console.log(‘res‘, res)
    }
  })
}

remove();

3.4 更新操作

var User = require(‘./userInfo.js‘)

function update() {
  var wherestr = {uname: ‘yaobo1‘}
  var updatestr = {uname: ‘神奇的造物主‘}

  User.update(wherestr, updatestr, function (er , res) {
     if (er) {
       console.log(‘er:‘, er)
     }
     if (res) {
       console.log(‘res‘, res)
     }
  })
}

update();

  其实这样写下来就会发现,掌握了结构之后,就是知道如何去使用nodejs去操作mongodb, 可能有些复杂的没写(后续有好的东西,再往上加),不过基本语句掌握了,掌握mongdb的语言就尤为重要了

原文地址:https://www.cnblogs.com/yaobolove/p/8313185.html

时间: 2024-10-08 19:35:17

Nodejs学习笔记(二)--- 操作MongoDB数据库的相关文章

nodejs学习笔记二链接mongodb

a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录:npm install mongodb --save 但是发现报gyp ERR! stack Error:Can't find python executable "python"错误,缺少python运行环境. 我晕死,我链接mongodb还需要Python,这不是存心让用户找虐.查到有

nodejs学习笔记&lt;二&gt;简单的node服务器

在环境搭建好后,就可以开始动手架设(node驱动)一个简单的web服务器. 首先,nodejs还是用js编写.先来看一段node官网上的实例代码. var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/plain'}); res.end('Holle,nodejs'); }).listen(8080,'127.0.0.1'); console

Nodejs学习笔记(二)

Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数. 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回.这样在执行代码时就没有阻塞或等待文件 I/O 操作.这就大大提高了 Node.js 的性能,可以处理大量的并发请求. 阻塞代码实例 创建一个文件 input

nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET           数据在url中 2.POST         数据不再url中 get方式:通过地址栏来传输     name=value&name1=value1&               作用:分享 post方式:通过head头传输      数据相对安全 form action="http://www.vaidu

nodejs学习笔记二:解析express框架项目文件

上一章介绍了如何去创建一个express框架的工程项目,这章介绍一下express框架下的文件和用法解析,上一张我们创建的工程项目结构图如下: models是不属于原工程项目结构,为了实现数据模型后添加的,而node_modules这个文件夹内存放着项目需要的中间件,public是存放静态文件的文件夹,routes顾名思义就是路由解析文件的所在,views就是ejs模板引擎的视图文件,app.js是项目运行的入口存放着全局大量的配置,package.json是加载第三方包的配置文件.下面来一一解

MongoDB Java 学习笔记 (Java操作MongoDB)

原文地址:http://blog.csdn.net/ererfei/article/details/50857103 参考文档:http://www.runoob.com/mongodb/mongodb-java.html

NodeJS 学习笔记(二)

url模块 ,包含分析和解析 URL 的工具. var url = require('url'); url.parse(urlStr[, parseQueryString][, slashesDenoteHost])  第一个参数,输入 URL 字符串,返回一个对象. var url = require('url'); url.parse('http://www.tianh.top'); { protocol: 'http:', slashes: true, auth: null, host:

二十六、Nodejs 操作 MongoDb 数据库

一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --save-dev / cnpm install mongodb --save-dev mongodb官方文档网址: https://docs.mongodb.com/manual/ 进入下面的页面,你就可以选择你使用的开发语言的操作mongodb的文档,注意,一般很难加载出来的... node.js操作

[Spring Data MongoDB]学习笔记--建立数据库的连接

1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoDbFactory { DB getDb() throws DataAccessException; DB getDb(String dbName) throws DataAccessException; } 然后我们可以继续用MongoDbFactory来创建MongoTemplate的实例. pu

nodejs操作mongodb数据库的方法

//http://mongodb.github.io/node-mongodb-native/3.0/quick-start/quick-start/ /* nodejs操作mongodb数据库 1.安装mongodb. cnpm install mongodb --save 2.引入mongodb下面的MongoClient var MongoClient = require('mongodb').MongoClient; 3.定义数据库连接的地址 以及配置数据库 qianfeng数据库的名称