节点/ MongoJS和批量操作

问题描述:

我有一个MongoDB 2.6数据库。 从蒙戈外壳,我能够按照预期进行批量操作,并使用蒙戈1.4.9节驱动器,以及:节点/ MongoJS和批量操作

// bulktest-mongodb.js: works fine 
var Db = require('mongodb').Db; 
var Server = require('mongodb').Server; 
var db = new Db('MyDB', new Server('localhost', 27017)); 

db.open(function(err, db) { 
    var col = db.collection("MyCollection"); 

    var bulk = col.initializeUnorderedBulkOp(); 
    bulk.find({ _id: 1 }).update({ $inc: { bulk: 1 }}); 
    bulk.find({ _id: 2 }).update({ $inc: { bulk: 2 }}); 
    bulk.execute(function(err, result) { 
     console.log("RESULT: "+JSON.stringify(result)); 
    }); 
}); 

RESULT: {"ok":1, ...} 

然而,在我的项目,我使用MongoJS 0.14.1,这似乎成为MongoDB 1.4.9节点驱动程序的包装器。如果我尝试使用这个MongoJS包装做同样的,我得到:

// bulktest-mongojs.js: does not work??? 
var mongojs = require("mongojs"); 
var db = mongojs.connect("mongodb://localhost/MyDB"); 
var col = db.collection("MyCollection"); 

var bulk = col.initializeUnorderedBulkOp(); 
bulk.find({ _id: 1}).update({ $inc: { bulk: 1}}); 
bulk.find({ _id: 2}).update({ $inc: { bulk: 2}}); 
bulk.execute(function(err, result) { 
    console.log("RESULT: "+JSON.stringify(result)); 
}); 

> node ./bulktest-mongojs.js 
... 
var bulk = col.initializeUnorderedBulkOp(); 
      ^
TypeError: Object MyDB.MyCollection has no method 'initializeUnorderedBulkOp' 

显然,方法不是由包装曝光,而它是存在于驱动程序。在MongoJS文档和Google搜索中,我找不到与MongoJS驱动程序结合使用批量操作相关的任何内容。我觉得这很好奇,因为从5月份左右开始散货业务就已经开始了。

有人可以告诉我如何使用MongoJS驱动程序执行Mongo批量操作吗? 它是否支持?我的执行有问题吗?

谢谢!

这个MongoJS驱动程序显然不支持批量更新。 MongoJS v0.15刚刚发布并支持批量更新。上面的例子用这个更新的MongoJS驱动程序正常工作。