【发布时间】:2013-08-01 15:34:55
【问题描述】:
我在 mongo 数据库中有一个集合名称列表。我需要一个脚本,通过在 mongo 数据库中使用 map reduce 作业将集合名称作为参数传递来获取每个集合中的所有文件名称。
这是我目前所拥有的:
mr = db.runCommand({
"mapreduce" : "collectionname",
"map" : function() { for (var key in this) { emit(key, null); } },
"reduce" : function(key, stuff) { return null; },
"out": "collectioname" + "_keys"
})
或者在 mongo shell 中执行它的一行代码:
mr = db.runCommand({
"mapreduce" : "collectionname",
"map" : function() { for (var key in this) { emit(key, null); } },
"reduce" : function(key, stuff) { return null; },
"out": "collectioname" + "_keys"
})
此命令用于获取集合中的字段列表。但是这个只适用于初级。我需要循环它(获取数据库中每个集合中的所有字段)。非常感谢。
【问题讨论】:
-
我们不在你的指挥之下。向我们展示您目前的成果,我们会尽力为您提供帮助。
-
mr = db.runCommand({ "mapreduce" : "collectionname", "map" : function() { for (var key in this) { emit(key, null); } }, " reduce" : function(key, stuff) { return null; }, "out": "collectioname" + "_keys" }) 这是我必须用来获取集合中字段列表的命令。但是这个正在工作只在主要的。我需要循环它来获取数据库中每个集合中的所有字段
-
这个问题已经回答了好几次了,其实我自己也回答过3次了,你可以看看:github.com/variety/variety
-
如果主机有用户名 pwd 和端口值,如何运行此代码。我已尝试如下从此处复制代码variety.js。但以下命令返回错误。MongoDB shell 版本:2.0-A3连接到:ma-ireconm-ldb02.corp.apple.com:10901/admin Tue Jul 30 21:50:48 SyntaxError: syntax error (shell eval):1 mongo -u $usernames -p $PWD $HOST:$PORT /admin --eval "db = db.getSiblingDB('database')","var collection = 'collectioname'"variety.js
-
您能正确格式化您的代码 sn-ps 吗?这太棒了