Node.js的Mongodb使用实例

2020-06-17 07:03:29易采站长站整理

使用生成器(Generator)的批量插入操作


var MongoClient = require('mongodb').MongoClient,
test = require('assert'),
co = require('co');

co(function*(){
var db = yield MongoClient.connect('mongodb://localhost:27017/test');
var blog = db.collection('blog');
var r = yield blog.insertMany([{name:"xiaosBB"},{name:"fzqMM"}]);
test.equal(2,r.insertedCount);
db.close();
});

单个文档插入:insertOne(doc,options,callback)(如果没有callback函数,本身返回一个Promise对象)

简单的插入操作


var MongoClient = require('mongodb').MongoClient,
test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test',(err,db)=>{
var blog = db.collection('blog');
blog.insertOne({name:"xiaos"},(err,r) => {
test.equal(null,err);
test.equal(1,r.insertedCount);
db.close();
});
});

使用Promise的插入操作


var MongoClient = require('mongodb').MongoClient,
test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test',(err,db)=>{
var blog = db.collection('blog');
blog.insertOne({name:"xiaos"}).then((r)=>{
test.equal(1,r.insertedCount);
db.close();
});
});

使用生成器的插入操作


var MongoClient = require('mongodb').MongoClient,
test = require('assert'),
co = require('co');

co(function*(){
var db = yield MongoClient.connect('mongodb://localhost:27017/test');
var blog = db.collection('blog');
var r = yield blog.insertOne({name:"xiaosBB"});
test.equal(1,r.insertedCount);
db.close();
});

mapReduce(map,reduce,options,callback) return Promise if no callback


var MongoClient = require('mongodb').MongoClient,
test = require('assert');

MongoClient.connect()

isCapped(callback) return Promise if no callback


var MongoClient = require('mongodb').MongoClient,
test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test',(err,db) => {
db.createCollection('newBlog',{'capped':true,'size':1024},(err,collection) => {
test.equal('newBlog',collection.collectionName);
collection.isCapped((err,capped) => {
test.equal(true,capped);
db.close();
});
});
});

capped collection是指固定大小的集合,新元素插入后会覆盖掉旧的元素,保持整个集合的大小不变。


//在命令行中输入mongo
//创建一个1024大小的myCappedCollection集合