node.js - Mongodb插入函数语法

标签 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()
 })
});

最佳答案

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

如果您想在插入实际完成后执行某些操作(包括检查是否成功),则需要在回调中执行此操作(随后调用)。

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

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

关于node.js - Mongodb插入函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853601/

相关文章:

arrays - 如何将一个对象插入到mongo数组中的另一个对象中

php - 在 double 上调用成员函数 first()

mysql - 非唯一的多对多表设计

c# - 有关为 C# Windows 窗体和 Android 应用程序创建在线数据库的建议/提示

ruby-on-rails - 相对于 Rails AES 密码的环回密码加密

node.js - 减少无服务器框架发送的 Node 模块 zip 的大小

node.js - 获取 MongoDB 中特定月份和特定年份的文档

node.js - Slickgrid 基本示例 - 在 node/express 中,只有第一行数据加载但不可见

javascript - 除非已经插入文档,否则将文档插入集合中?

java - 使用 Java 进行 MongoDB ISODate 字段搜索