gpt4 book ai didi

javascript - 如何从发送到 Mongo 的脚本中返回一个值?

转载 作者:可可西里 更新时间:2023-11-01 10:44:45 26 4
gpt4 key购买 nike

我有一组数据库管理任务需要在其他一些 rake 任务之后运行。所以我读了Ruby Mongo driver source和一些博客文章,我最终得到了这段代码:

scr = open("./scripts/update_stats.js", &:read)
db = Mongoid::Config::master
result = db.command({:$eval => scr})
logger.debug result
logger.warn "Finished updating stats"

在脚本中我有几个函数,然后是最后一个函数:

r = update_stats();
print("update result:");
print (r);

好的,所以当我直接通过命令行运行它时一切正常。嗯,好像是。但我想获取结果值并将其存储到我的日志中。我可以将值存储到数据库中,然后我想将其取出。似乎应该有更好的方法。我得到它我的日志是:

DEBUG 2012-01-03 22:27:03 -0800 (21392) {"retval"=>nil, "ok"=>1.0}

除了它没有爆炸之外,这并没有告诉我太多。那么,如何获取 update_stats 的返回值并将其记录到我的 Ruby 代码中呢?

最佳答案

好的,这里有两个潜在的问题。

第一个问题是您正在对数据库运行 JS 文件,但我不太清楚这是如何工作的。看起来像 Mongoid 的一些特殊功能?您期望得到什么结果?

第二个问题是,如果 rake 机器具有驱动程序访问权限,则根本不清楚为什么要使用 JS 文件。您运行的哪些命令不能直接通过 Ruby 驱动程序作为命令简单地运行?

一般来说,只有在通过 mongo 程序直接调用作业时才需要引入任意 JS 文件。因此,您将从 cron 作业运行 mongo my_map_reduce.js,这很有意义。

如果您正在运行的命令可通过驱动程序访问(99% 的情况下都是如此)。然后用 Ruby 编写整个管理脚本。

关于javascript - 如何从发送到 Mongo 的脚本中返回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8722972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com