1
我有一個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批量操作嗎? 它是否支持?我的執行有問題嗎?
謝謝!