commit 439d6274e7161aa32abfb6cfa3ee2c2192a01c93 Author: Junv Date: Wed Oct 24 10:43:33 2012 +0800 init diff --git a/README.md b/README.md new file mode 100644 index 0000000..460a168 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +## 这是一个关于node.js操作mongodb的demo,主要包含: + +* CRUD on mongodb +* gridfs with mongodb diff --git a/gridfs-test.js b/gridfs-test.js new file mode 100644 index 0000000..c7cc760 --- /dev/null +++ b/gridfs-test.js @@ -0,0 +1,56 @@ +var mongo = require('mongodb'); +var fs = require('fs'); + +var server = new mongo.Server('localhost', 27017, { + auto_reconnect: true +}); +var db = new mongo.Db('mydb', server); + +db.open(function(err, db) { + if(err) throw err; + + var gridFs = new mongo.Grid(db, 'fs'); + var buffer = fs.readFileSync('c://a.iso'); + //璇ョ鏂瑰紡瀛樻枃浠堕渶瑕佽鍙栨墍鏈夋枃浠朵俊鎭紝濡傛灉鏂囦欢杩囧ぇ鍙兘浼氬鑷村唴瀛樻孩鍑 + gridFs.put(buffer, {}, function(err, fileInfo) { + if(!err) { + console.log('write file success!'); + } + + //閫氳繃ID鑾峰彇鏂囦欢 + gridFs.get(fileInfo._id, function(err, data) { + if(err) throw err; + //浣跨敤nodejs 鍘熺敓api鍐欏叆鏂囦欢鍒扮‖鐩 + fs.writeFile('c:\\my.iso', data, 'gb2312', function(err) { + if(!err) { + console.log('write file to local file system succeed!'); + } + }); + }) + }); + + //浣跨敤GridStore鏂瑰紡鎿嶄綔鏂囦欢 + var gridStore = new mongo.GridStore(db, new mongo.ObjectID(), 'w', {root: 'fs'}); + + gridStore.writeFile('c://a.iso', function(err, fileInfo) { + + if(err) throw err; + console.log(fileInfo); + //鏂板缓涓涓猤ridstore鐢ㄤ簬璇诲彇鏂囦欢 + var readGrid = new mongo.GridStore(db, fileInfo._id, 'r'); + readGrid.open(function(err, gridStore) { + //璇诲彇鏁版嵁 + readGrid.read(function(err, data) { + //鍐欏叆鍒版湰鍦版枃浠剁郴缁 + fs.writeFile('c:\\myaaa.iso', data, function(err) { + if(!err) { + console.log('write file to local file system succeed!'); + } + }); + db.close(); + }); + }); + }); + + +}); \ No newline at end of file diff --git a/mongo-test.js b/mongo-test.js new file mode 100644 index 0000000..94cbc51 --- /dev/null +++ b/mongo-test.js @@ -0,0 +1,68 @@ +var mongodb = require("mongodb"); + +var server = new mongodb.Server('localhost',27017,{auto_reconnect:true},10); +var db = new mongodb.Db("mydb2",server); +db.open(function(err,db){ + + if(err){ + console.log("err occured."); + } + + /*db.createCollection('fuck1',{safe:true},function(err,collection){ + if(err){ + console.log(err); + }else{ + console.log("created successful!"); + } + + });*/ + + db.collection('fuck',function(err,collection){ + var json = { + 'name':'aaa', + 'age':undefined + }; + var array=[json,{'name':'mary'}]; + collection.insert(array,{safe:true},function(err,result){ + + if (err) throw err; + console.log("insert done"); + }); + + /*collection.update({'name':'tom'},{$set:{'name':'lily','age':100}},function(err,result){ + if(err) throw err; + if(!err){ + console.log("update successful"); + } + });*/ + + /*collection.remove({'name':'tom'},{safe:true},function(err,result){ + if(err) console.log(err); + + });*/ + /* //鑾峰彇鎵鏈夌粨鏋 + collection.find().toArray(function(err,items){ + if(err) throw err; + for(var i=0;i