Mongo DB插入函数语法

时间:2016-04-26 00:58:00

标签: node.js mongodb database nosql

我对Mongo插入函数中可选回调的目的很困惑。究竟用于什么?

var mongo = require('mongodb').MongoClient
var url = 'mongodb://localhost:27017/learnyoumongo'; // learnyoumongo is the Database

var firstName = process.argv[2];
var lastName = process.argv[3];

var doc = {
  'firstName': firstName,
  'lastName': lastName
}

 mongo.connect(url, function(err, db) {
 if (err) throw err;

 // db gives access to the database
 var docs = db.collection('docs');
 docs.insert(doc,function(err, data){ // What is the purpose of this callback function?
   if (err) throw err;
   console.log(JSON.stringify(doc));
   db.close()
 })
});

1 个答案:

答案 0 :(得分:2)

doc.insert是异步调用。它将在操作完成之前立即返回。

如果你想在插入实际完成后做一些事情(包括检查它是否成功),你需要在回调中执行此操作(之后调用)。

请注意,您使用mongo.connect执行相同的操作:您只能从回调中开始使用连接。

这是Javascript编程中一种非常常见的模式:触发后台操作,稍后将结果作为回调的参数接收。