Node.js的Mongodb使用实例
Node.js中的MongoDB使用实例
一、安装MongoDB模块
你需要安装MongoDB模块。可以使用以下命令进行安装:
```shell
npm install --save mongodb
```
二、数据库连接
在Node.js中连接MongoDB非常简单。以下是一个基本的连接示例:
```javascript
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
// 连接test数据库
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log('连接成功');
db.close();
});
```
```javascript
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
// test数据库的路径
var url = 'mongodb://localhost:27017/test';
var insertDocument = function(db, callback) {
db.collection('blog')sertOne({
name: "xiaos",
age: 22
}, function(err, result) {
assert.equal(err, null);
console.log('新增文档成功');
callback();
});
};
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
insertDocument(db, function() {
db.close();
});
});
```
```javascript
var MongoClient = require('mongodb').MongoClient;
var test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
var blog = db.collection('blog');
// 新增两个文档对象
blogsertMany([{name:"shen"},{name:"fzq"}], function(err, r) {
test.equal(null, err);
test.equal(2, rsertedCount);
db.close();
});
});
```
```javascript
var MongoClient = require('mongodb').MongoClient;
var test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
var blog = db.collection('blog');
这个Promise对象,就像是给我们送来未来的消息。它告诉我们:某项任务何时完成,完成的进度如何,以及在任务完成后应如何处理结果或应对可能出现的错误。它的特性允许我们在任务尚未完成时继续执行其他操作,而不是傻傻等待任务完成。这是现代前端开发中的一种重要思想,我们称之为非阻塞I/O。
当我们调用insertMany([obj...])时,这个函数会开始执行异步操作。为了处理这个操作的结果和可能出现的错误,我们可以使用Promise提供的两个主要方法:.then()和.catch()。
想象一下,我们把这个Promise比作一个快递包裹。当包裹安全送达时,我们希望收到的是好消息,也就是正常的数据结果。这时,我们可以使用.then()方法,就像拆开包裹一样,查看里面的内容。我们可以在这个回调函数中处理正常的数据结果,比如更新界面、发送通知等。如果包裹中出现了意外情况,比如破损或者里面藏有错误的信息,我们就可以使用.catch()方法来捕获这些异常。在异常处理函数中,我们可以对错误进行处理,比如重新尝试操作、通知用户等。
```javascript
const MongoClient = require('mongodb').MongoClient;
const test = require('assert');
const co = require('co');
co(function () {
// 连接数据库
const db = yield MongoClient.connect('mongodb://localhost:27017/test');
const blogCollection = db.collection('blog');
const result = yield blogCollectionsertMany([{name:"xiaosBB"},{name:"fzqMM"}]);
db.close(); // 关闭数据库连接
});
```
```javascript
const MongoClient = require('mongodb').MongoClient;
const test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test', (err, db) => {
const blogCollection = db.collection('blog');
blogCollectionsertOne({name:"xiaos"}, (err, result) => {
test.equal(null, err); // 检查是否有错误发生
db.close(); // 关闭数据库连接
});
});
```
或者是使用生成器函数和co库来简化异步操作:
```bash
db.createCollection('myCappedCollection',{'capped':true,'size':1024})
```
```javascript
for (var i = 1; i <= 1000; i++){
db.myCappedCollection.save({id:i,name:'xiaos'+i});
}
```
```javascript
db.myCappedCollection.count()
```
编程语言
- Node.js的Mongodb使用实例
- php实现映射操作实例详解
- 开启BootStrap学习之旅
- bootstrap table插件动态加载表头
- laravel Task Scheduling(任务调度)在windows下的使用详解
- PHP数组无限分级数据的层级化处理代码
- 作为程序员必知的16个最佳PHP库
- PHP采用超长(超大)数字运算防止数字以科学计数法
- 初步使用bootstrap快速创建页面
- 浅谈Vue数据响应思路之数组
- 详解AngularJS中$http缓存以及处理多个$http请求的方
- JS获取html元素的标记名实现方法
- JS中正则表达式要注意lastIndex属性
- Node.js + Redis Sorted Set实现任务队列
- asp.net中如何调用sql存储过程实现分页
- 微信小程序实现星级评分和展示