1
Mein Haupt server.js Code, wo ich meine Server starten und eine Verbindung zu MongoDB ServerBulk-Update - BulkWriteResult.nMatched und BulkWriteResult.nModified Rückkehr 0
if(process.env.MONGOLAB_URI) {
mongoose.connect(process.env.MONGOLAB_URI);
} else {
mongoose.connect("mongodb://localhost/itrack");
}
global.db = mongoose;
mongoose.connection.on('open', function() {
// This line is getting printed here
console.log('Mongoose opened.');
});
// When successfully connected
mongoose.connection.on('connected', function() {
console.log('Worker ' + process.pid + ' is alive!');
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port:', app.get('port'));
});
});
// If the connection throws an error
mongoose.connection.on('error',function (err) {
console.log('Mongoose default connection error: ' + err);
process.exit(0);
});
// When the connection is disconnected
mongoose.connection.on('disconnected', function() {
console.log('Mongoose default connection disconnected');
});
Jetzt in meiner Controller/Kunden/router.js Controllerdatei ,
router.put("/addstud/:route", function(req,res,next) {
var custId = req.user.id;
var studList = req.body;
var route = req.params.route;
db.connection.on('open', function() {
// Never goes inside this As i have to bulk Update Operation
console.log('Mongoose opened.');
});
db.connection.once('open',function(err,conn) {
// Nor this
}
});
var bulk = Student.collection.initializeUnorderedBulkOp();
// this simple code is not working
bulk.find({_id:'56f940172681fda5c6536a4d'})
.updateOne({name:'test'});
bulk.execute(function(err, result) {
if(err) {
console.log("ERROR WHILE INSERTING "+err);
} else {
// This line is getting printed means no error but nothing changed in DB
console.log("RESULT "+result.mMatched); // 0 ! HOW ????????
}
});
Aber innerhalb der gleichen Klasse kann ich einfach abrufen und Daten zu Db mit Mongoose Model hinzufügen.
wie übergeben Sie 'mongoose' Instanz in router.js? –
darüber, ich benötige eine neue Instanz. var mongoose = verlangen ('mongoose'); Dies ist, was ich getan habe, um ein neues Schema für alle meine Modelle – Bikash
zu generieren, sollten Sie eine globale Verbindung zu mongodb in der Startup-Datei haben und dann an die erforderlichen Routen übergeben. –