二: 创建数据模型
创建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();View Code
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选项中。
- 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();View Code
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();View Code
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();View Code
其实这样写下来就会发现,掌握了结构之后,就是知道如何去使用nodejs去操作mongodb, 可能有些复杂的没写(后续有好的东西,再往上加),不过基本语句掌握了,掌握mongdb的语言就尤为重要了
Nodejs学习笔记(二)--- 操作MongoDB数据库
标签:name ror ocs exports 通过 字符 insert nbsp nodejs