相关说明
云数据库 MongoDB 默认提供 rwuser 和 mongouser 两个用户名,分别支持 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式,对于这两种认证方式,连接 URI 需要做不同的处理,具体参见 连接实例、Node.js MongoDB 驱动文档。
快速开始
Node.js 原生示例代码
Shell 安装驱动包:
npm install mongodb --save( 如遇安装不成功可以尝试更换源,npm config set registry http://registry.cnpmjs.org )npm init
程序代码:
'use strict';var mongoClient = require('mongodb').MongoClient,assert = require('assert');// 拼接 URIvar url = 'mongodb://mongouser:thepasswordA1@10.66.161.177:27017/admin';mongoClient.connect(url, function(err, db) {assert.equal(null, err);var db = db.db('testdb'); // 选择一个 dbvar col = db.collection('demoCol'); // 选择一个集合(表)// 插入数据col.insertOne({a: 1,something: "yy"},//可选参数//{// w: 'majority' // 开启 “大多数”模式,保证数据写入 Secondary 节点//},function(err, r) {console.info("err:", err);assert.equal(null, err);// 断言写入成功assert.equal(1, r.insertedCount);// 查询数据col.find().toArray(function(err, docs) {assert.equal(null, err);console.info("docs:", docs);db.close();});});});
输出:
[root@VM_2_167_centos node]# node index.jsdocs: [ { _id: 567a1bf26773935b3ff0b42a, a: 1, something: 'yy' } ]
Node.js mongoose 连接示例
Mongoose 是在 Node.js 异步环境下对 mongodb 便捷操作的对象模型工具。
运行前准备
执行以下命令,在客户端安装 mongoose。
npm install mongoose --save
示例代码
var mongoose = require("mongoose"); // 以下参数分别填写您的 mongodb 用户名,密码,实例 IP 地址 和 端口号 var dbUri = "mongodb://" + user + ":" + password + "@" + host + ":" + port + "/" + dbName; // 建立连接 var opts = { auth: { authMechanism: 'MONGODB-CR', // 如果使用 SCRAM-SHA-1 认证则不需要此参数 authSource: 'admin' } }; var connection = mongoose.createConnection(dbUri, opts); // 连接成功 mongoose.connection.on('connected', function () { console.log('Mongoose connection open to ' + dbUri ); }); // 操作user表(集合) 定义一个Schema Schema里面的对象和数据库表里面的字段需要一一对应 const UserSchema = new mongoose.Schema({ name: String, age: Number }); // 定义数据库模型 操作数据库 const User = mongoose.model('User', UserSchema, 'user'); // 保存数据 var addUser = new User({ name:'James', age:36 }); function testSave() { addUser.save(function (error, user) { console.log("save()", error, user) }); } testSave()