前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Mongoose 操作 MongoDB

使用 Mongoose 操作 MongoDB

作者头像
4O4
发布2022-04-25 19:57:33
1.6K0
发布2022-04-25 19:57:33
举报
文章被收录于专栏:404404

Mongoose是在node.js环境下对mongodb进行便捷操作的对象模型工具。

Connect

创建数据库连接

代码语言:javascript
复制
mongoose.connect(url(s), [options], [callback])
//url(s):数据库地址,可以是多个,以`,`隔开
//options:可选,配置参数
//callback:可选,回调
mongoose.connect('mongodb://数据库地址(包括端口号)/数据库名称')
指定用户连接
代码语言:javascript
复制
mongoose.connect('mongodb://用户名:密码@127.0.0.1:27017/数据库名称')
连接多个数据库

如果你的app中要连接多个数据库,只需要设置多个url以,隔开,同时设置mongos为true

代码语言:javascript
复制
mongoose.connect('urlA,urlB,...', {
   mongos : true 
})
回调参数
代码语言:javascript
复制
mongoose.connect(url, options, function(error) {
});

执行下列代码后,控制台输出“连接成功”

代码语言:javascript
复制
var mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/test", function(err) {
    if(err){
        console.log('连接失败');
    }else{
        console.log('连接成功');
    }
});

如果开启鉴权控制,以用户名"u1",密码"123456"登录'db1'数据库。执行代码后,控制台输出“连接成功”

代码语言:javascript
复制
var mongoose = require('mongoose');
mongoose.connect("mongodb://u1:123456@localhost/db1", function(err) {
    if(err){
        console.log('连接失败');
    }else{
        console.log('连接成功');
    }
});
动手

创建 config.js ,存放了 url 连接地址。

代码语言:javascript
复制
module.exports = {
  mongoUrl: 'mongodb://username:password@domain:port/database',
  jwtKey: 'zephyr-jwt-secret-key'
}

创建 connection.js ,复用连接。

代码语言:javascript
复制
const mongoose = require('mongoose');

const DB_URL = require("../config").mongoUrl;

mongoose.connect(DB_URL, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log("we are connected"))
  .catch(error => console.log(error));

我有如下数据

创建 banner.js ,实例化模型。

代码语言:javascript
复制
const mongoose = require('mongoose');

const Banner = new mongoose.Schema({
  id: Number,
  title: String,
  url: String,
  to: String
})

module.exports = mongoose.model('Banner', Banner);

创建 query.js ,执行查询。

代码语言:javascript
复制
require('../db/connection');
const banner = require('../models/banner');

class SourceController {
  // 获取首页banner
  async getBanner(ctx, next) {
    const res = await banner.find(function (err, result) {
      if (err) return handleError(err);
      console.log('ok' + result);
      return result;
    })
    ctx.body = res;
  }
}

module.exports = new SourceController();

执行 node app.js

关闭数据库连接

disconnect()
代码语言:javascript
复制
mongoose.disconnect();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Connect
    • 创建数据库连接
      • 指定用户连接
      • 连接多个数据库
      • 回调参数
      • 动手
    • 关闭数据库连接
      • disconnect()
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档