分针网—每日分享:安装使用Mongoose配合Node.js操作MongoDB的基础教程

这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友可以参考下

安装mongoose
使用express准备一个TestMongoDB项目,命令序列如下:
express TestMongoDB
cd TestMongoDB
npm install
执行完上面的命令后,使用下面的命令安装mongoose:
npm install mongoose --save
这个命令会安装mongoose并将其作为项目的依赖,而mongoose依赖的MongoDB driver以及regexp等等模块也会被自动安装。

实例
使用mongoose可以新建数据库、新建集合、对集合内的文档进行CRUD操作,在写代码时,可以对照着mongo shell验证结果是否符合预期。
在TestMongoDB下新建一个mongo.js文件,内容如下:
  
  
var mongoose = require ( 'mongoose' ) ;
mongoose . connect ( 'mongodb://localhost/accounts' ) ;
var db = mongoose .connection ;
db . on ( 'error' , console .error . bind (console , 'connection error:' ) ) ;
db . once ( 'open' , function ( ) {
console . log ( 'mongoose opened!' ) ;
var userSchema = new mongoose.Schema ( {
name : {type : String , unique : true } ,
password :String
} ,
{collection : "accounts" }
) ;
var User = mongoose . model ( 'accounts' , userSchema ) ;
User . findOne ( {name : "WangEr" } , function (err , doc ) {
if (err ) console . log (err ) ;
else console . log (doc .name + ", password - " + doc .password ) ;
} ) ;
var lisi = new User ( {name : "LiSi" , password : "123456" } ) ;
lisi . save ( function (err , doc ) {
if (err )console . log (err ) ;
else console . log (doc .name + ' saved' ) ;
} ) ;
} ) ;

上面的文件,直接执行“node mongo.js”命令即可查看效果。
要使用mongoose,先require,然后使用connect方法连接数据库。connect原型:
  
  
connect (uri , options , [callback ] )

uri的格式类似:“mongodb://user:pass@localhost:port/database”。
mongoose的connection对象定义了一些事件,比如connected、open、close、error等,我们可以监听这些事件。
在我们的示例代码里,我监听了open事件,在回调函数中,定义了Schema,调用mongoose.model来编译Schema得到Model对象。需要注意的是,定义Schema时指定的collection名字与mongoose.model的第一参数要保持一致。
拿到了Model对象,就可以执行增删改查等操作了。Model对象有find()、findOne()、update()、remove()等方法,和我们在mongo shell里的用法类似。这些方法都有一个可选的callback,当你提供这些callback时,执行的结果会通过这个callback返回给你。如果你不提供,这些方法会返回一个Query对象,你可以再通过Query组装新的选项,然后调用Query的exec(callback)来提交查询。
我在代码里查找WangEr的档案时用了callback,没用Query。
Model对象有个Model(doc)方法,用来构造一个文档(Document)。创建Lisi的文档时就是这种Document对象的save()方法可以将文档保存到数据库。

通过mongoose进行的基本操作:
1、增
  
  
var obj = new Movie ( ) ;
obj .title = '标题一' ;
obj .content = '内容' ;
obj . save ( function (err ) {
} ) ;

2、删
  
  
Movie . remove ( {
_id :id
} , function (err ) {
} )

3、改
  
  
Movie . update ( {
_id :id
} ,json , { } , function (err ) {
} )

4、查
  
  
Movie . findOne ( {
_id : id
} , function (err , obj ) {
} ) ;
Movie . find ( { } ) . sort ( {_id : - 1 } ) . limit ( 3 ) . exec ( function (err , obj ) {
} )


链接:http://www.f-z.cn/id/172







学习更多IT知识 加群:272292492







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值