文章目录
  1. 1. node-mongodb-native
  2. 2. Mongoose
    1. 2.1. 安装
    2. 2.2. 使用
      1. 2.2.1. Connecting to MongoDB
      2. 2.2.2. Defining a Model
      3. 2.2.3. Accessing a Model
  3. 3. 参考

在使用nodejs进行开发的时候,一直使用的是mongoDB,本文就来介绍一下如何在node中集成mongoDB。

node-mongodb-native

MongoDB中提供了支持nodejs的驱动。我们可以使用如下代码集成mongo。

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
    .....
});

Github上的一个实例:

var MongoClient = require('mongodb').MongoClient
    , format = require('util').format;

  MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
    if(err) throw err;

    var collection = db.collection('test_insert');
    collection.insert({a:2}, function(err, docs) {

      collection.count(function(err, count) {
        console.log(format("count = %s", count));
      });

      // Locate all the entries using find
      collection.find().toArray(function(err, results) {
        console.dir(results);
        // Let's close the db
        db.close();
      });
    });
  })

Mongoose

Mongoose是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。

安装

npm install mongoose

使用

Connecting to MongoDB

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database');

Defining a Model

var Schema = mongoose.Schema
  , ObjectId = Schema.ObjectId;

var BlogPost = new Schema({
    author    : ObjectId
  , title     : String
  , body      : String
  , date      : Date
});

定义Schema时也可以对属性做一定的约束,如下:

var Comment = new Schema({
    name  :  { type: String, default: 'hahaha' }
  , age   :  { type: Number, min: 18, index: true }
  , bio   :  { type: String, match: /[a-z]/ }
  , date  :  { type: Date, default: Date.now }
  , buff  :  Buffer
});

Accessing a Model

先定义一个model:

mongoose.model('ModelName', mySchema)

Access model:

var myModel = mongoose.model('ModelName');

find documents from the same collection:

MyModel.find({}, function (err, docs) {
  // docs.forEach
});

参考

  1. The Node.JS MongoDB Driver Manual
  2. node-mongodb-native Github项目
  3. Mongoose
文章目录
  1. 1. node-mongodb-native
  2. 2. Mongoose
    1. 2.1. 安装
    2. 2.2. 使用
      1. 2.2.1. Connecting to MongoDB
      2. 2.2.2. Defining a Model
      3. 2.2.3. Accessing a Model
  3. 3. 参考