对MongoDB的一些基础知识感到困惑
我目前正在学习“learnyoumongo”教程的第三课,目前对process.argv与当前教程的关系感到困惑 本教程的目标是使用名为“learnyoumongo”的数据库。 Mongod设置为默认端口27017。 我需要使用“parrots”集合查找“age”大于传递给脚本的第一个参数的所有文档 解决这一挑战的办法如下对MongoDB的一些基础知识感到困惑,mongodb,Mongodb,我目前正在学习“learnyoumongo”教程的第三课,目前对process.argv与当前教程的关系感到困惑 本教程的目标是使用名为“learnyoumongo”的数据库。 Mongod设置为默认端口27017。 我需要使用“parrots”集合查找“age”大于传递给脚本的第一个参数的所有文档 解决这一挑战的办法如下 var mongo = require('mongodb').MongoClient var age = process.argv[2] var url = 'mongod
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()
})
})
我对第二行感到困惑。我们将变量age设置为process.argv[2]。然而,当我尝试将其记录到console.log时,我收到null。它应该是空的吗?process.argv在Mongo中经常使用吗??欢迎任何意见 process.argv属性返回一个数组,其中包含启动nodejs进程时传递的命令行参数 例如,如果您的文件名为index.js,并按如下方式启动它: node index.js 20 如果要创建数组,请执行以下操作:
argv[0] => /usr/local/bin/node
argv[1] => /path_to_node_folder/index.js
argv[2] => 20
因此,在启动节点时,基本上是在命令提示符中将年龄作为参数传递
在您的情况下,您正在通过年龄作为参数,然后将在内部用于您的逻辑。因此,要在控制台日志中具有age值,请在启动节点文件时传递该值,如下所示:
node yourFile.js 10
其中10岁是我已经过的年龄。OOOOO现在说得通了!谢谢你!