【发布时间】:2011-09-12 03:49:45
【问题描述】:
我正在尝试从 mongo shell 编写一个 mongo 脚本,但我遇到了一个小问题。我会让代码自己解释。
var shops = db.Shop.find({})
function printShopUrl(data) {
var name, url;
for (var i = 0; i < data.length(); i++) {
name = data[i].name;
url = db.Instance.findOne({name:name}).url;
print(url);
}
}
printShopUrl(shops)
所以我现在要做的只是打印 url,但是当我运行这个查询时,我得到了一个错误。
TypeError: db.Instance.findOne({name:name}) has no properties (shell):1
知道我做错了什么吗?
【问题讨论】:
-
查询似乎没有找到任何东西,在这种情况下它将返回 null。打印出中间结果
db.Instance.findOne({name:name})- 你看到了什么? -
感谢 E 先生,这正是我遇到的问题。我试图回答我自己的问题,但我没有足够的观点。所以我会在这里发布我的解决方案。 .. 我想我不能,它太长了,但是,是的,我所做的只是将它包裹在一个 try catch 中,它可以工作。
-
try catch 太过分了,就做
if(result) print(result.url);
标签: shell scripting mongodb serverside-javascript