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); }); }); });