Mongodb 操作

node.js 中使用mongodb,首先 npm install mongodb 添加至 package.json。

首先编写个测试demo:

// mongodb 基本配置
var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

// 开始mongodb操作
db.open(function (err, db) {
  if (err) return err;
  
  console.log('connect!');
})

连接成功显示 connect!

 

Mongodb 中文档是最基本的单位,如{name: 'Tony', age: 20, gender: 'male'} 就是一个最基本单位。而文档中又可以嵌套其他文档。集合是许多文档的总和,一个数据库可以有多个集合,一个集合可以有多个文档。

 

Mongodb 中对 collection 操作有两种方法:1. db.collection('user', function(err, result){...}); 2. db.createCollection('user', function(err, result){...}); (user为集合名字)

其中这两种方法有个可选参数 {safe: true} 

db.collection('user', {safe: true}, function(err, result){...})  collection 不存在时将报错。

db.createCollection('user', {safe: true}, function(err, result){...})  collection 存在时报错。

示例如下:

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

db.open(function (err, db) {
  if (err) return err;

  console.log('connect!');
  db.createCollection('user', function(err, result) {
    
  })
})

 

删除collection使用dropCollection();

db.dropCollection('user', function(err,result){
    console.log(result);
}); 

 

对collection进行增删改查操作:

向collection添加数据使用insert方法。

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

db.open(function (err, db) {
  if (err) return err;

  console.log('connect!');
  db.collection('user', function(err, user) {
    var item = {name: 'Tony', age: 20, gender: 'male'};
    user.insert(item, function (err, result) {
      console.log(result);
    })
  })
})

 

对数据进行更新用update方法。

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

db.open(function (err, db) {
  if (err) return err;

  console.log('connect!');
  db.collection('user', function(err, user) {
    user.update({name: 'Tony'}, {$set: {age: 22}}, function (err, result) {
      console.log(result);
    })
  })
})

 

对数据进行删除用remove方法。

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

db.open(function (err, db) {
  if (err) return err;

  console.log('connect!');
  db.collection('user', function(err, user) {
    user.remove({name: 'Tony'}, function (err, result) {
      console.log(result);
    })
  })
})

 

对数据进行查找用 find或者 findOne方法。

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var db = new mongodb.Db('crawlerdb', server, {safe:true});

db.open(function (err, db) {
  if (err) return err;

  console.log('connect!');
  db.collection('user', function(err, user) {

    var item1 = {name: 'Tony', age: 21, gender: 'male'};
    var item2 = {name: 'Sue', age: 18, gender: 'female'};

    user.insert([item1, item2], function (err, result) {
      console.log(result);
    });

    user.find(function(err, docs) {
      console.log(docs);
    });

    user.findOne(function(err, doc) {
      console.log(doc);
    });
  });
});

 

posted @ 2014-08-25 16:32  YanKwan  阅读(104)  评论(0编辑  收藏  举报