What is MongoDBs strict mode and is it a good idea

2019-01-15 13:43发布

问题:

I'm working on a node.js app that uses MongoDB and I read this from the docs:

db.collection

Fetch a specific collection (containing the actual collection information). If the application does not use strict mode you can can use it without a callback in the following way.

var collection = db.collection('mycollection');

First of all, what 'strict mode' is the doc referring to?

Also, is it a bad practice to grab the collection in this fashion? Without the callback, wouldn't I lose the ability to capture a potential connection error when trying to select the right collection?

db.collection('some_collection', function(err, collection) {
  // query goes here
});

回答1:

http://mongodb.github.io/node-mongodb-native/api-generated/db.html#collection

strict, (Boolean, default:false) returns an error if the collection does not exist

Right there in the documentation.

That is there so your application may not create new collections itself and can only reference what has been created before. Hence the need for the callback, in order to trap the error.



回答2:

It might be referring to Javascript's strict mode instead of a Mongo specific feature. strict mode enables some optional but backwards incompatible changes in the Javascript language that help catch some bugs:

What does "use strict" do in JavaScript, and what is the reasoning behind it?