【问题标题】:Confused on some MongoDB basics对一些 MongoDB 基础知识感到困惑
【发布时间】:2017-05-12 16:36:27
【问题描述】:

我目前正在学习“learnyoumongo”教程的第 3 课,目前对 process.argv 与当前教程的关系感到困惑。

本教程的目标是使用名为“learnyoumongo”的数据库。 Mongod 设置为默认端口 27017。 我需要使用“鹦鹉”集合来查找“年龄”大于传递给脚本的第一个参数的所有文档。

挑战的解决方案如下。

var mongo = require('mongodb').MongoClient
var age = process.argv[2]

var url = 'mongodb://localhost:27017/learnyoumongo'

mongo.connect(url, function(err, db) {
  if (err) throw err
  var parrots = db.collection('parrots')
  parrots.find({
    age: {
      $gt: +age
    }
  }).toArray(function(err, docs) {
    if (err) throw err
    console.log(docs)
    db.close()
  })
})

我对第 2 行感到困惑。我们将变量 age 设置为 process.argv[2]。然而,当我尝试 console.log 时,我收到 null。它应该是空的吗?在 Mongo 中是否经常使用 process.argv?欢迎任何建议!

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    process.argv 属性返回一个数组,其中包含启动 nodejs 进程时传递的命令行参数。

    例如,如果您的文件名是 index.js,并且您像这样启动它:

    节点 index.js 20

    如果将创建一个数组:

    argv[0] => /usr/local/bin/node
    argv[1] => /path_to_node_folder/index.js
    argv[2] => 20
    

    因此,您基本上是在启动节点时将年龄作为参数传递给命令提示符

    在您的情况下,您将年龄作为参数传递,然后将在内部用于您的逻辑。因此,要在控制台日志中有一个年龄值,请在启动节点文件时传递它,例如:

    node yourFile.js 10
    

    10 岁是我的年龄。

    【讨论】:

    • OOOOO 现在说得通了!谢谢你!
    猜你喜欢
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 2015-07-12
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多