mirror of
https://github.com/wahyd4/node.js-mongodb-demo.git
synced 2026-08-09 04:46:47 +10:00
init
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
## 这是一个关于node.js操作mongodb的demo,主要包含:
|
||||
|
||||
* CRUD on mongodb
|
||||
* gridfs with mongodb
|
||||
@@ -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);
|
||||
//新建一个gridstore用于读取文件
|
||||
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();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
@@ -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<items.length;i++){
|
||||
console.log(items[i]);
|
||||
}
|
||||
|
||||
for(item in array){
|
||||
console.log(array[item]);
|
||||
}
|
||||
});*/
|
||||
//流式获取所有结果
|
||||
/* var stream = collection.find().streamRecords();
|
||||
stream.on("data",function(item){
|
||||
console.log(item);
|
||||
});
|
||||
stream.on("end",function(){
|
||||
console.log("stream is end");
|
||||
});*/
|
||||
|
||||
collection.findOne({'name':'tom'},function(err,result){
|
||||
if (err) throw err;
|
||||
console.log(result);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user